VR-Engage  2.2
Loading...
Searching...
No Matches
vreAirVehicleSetController.h
Go to the documentation of this file.
1/*******************************************************************************
2** Copyright (c) 2025 MAK Technologies
3** All rights reserved.
4*******************************************************************************/
5
6//! \file vreAirVehicleSetController.h
7//! \ingroup vreVrfmodel
8//! \brief Controller for managing sets of air vehicles
9//!
10//! This file defines the DtVreAirVehicleSetController class which extends the base
11//! set controller functionality for air vehicles. It provides specialized commands
12//! and behaviors specific to air vehicles, such as altitude control.
13
14#pragma once
15
16#include "vreVrfmodel/export.h"
18
19#include <vrfmodel/airVehicleSetController.h>
20
21namespace makVre
22{
23//! \brief Type identifier for the VRE air vehicle set controller component
24const char DtVreAirVehicleSetControllerType[] = "vre-air-vehicle-set-controller";
25
26//! \brief Controller for managing sets of air vehicles
27//!
28//! DtVreAirVehicleSetController extends the base set controller functionality
29//! specifically for air vehicles. It provides specialized commands and behavior
30//! for air vehicles, such as altitude control and location setting. This controller
31//! manages multiple air vehicle entities as a coordinated set.
32class VREVRFMODEL_DLL DtVreAirVehicleSetController : public DtVreSetController<DtAirVehicleSetController>
33{
34public:
35 //! \brief Constructor
36 //! \param name The name of this component
37 //! \param owner The local object that owns this component
38 //! \param simManager The simulation services manager
39 //! \param desc Component descriptor with configuration parameters
40 //! \param parentRegistry Optional parent registry for reader/writer functionality
41 //!
42 //! Creates a new air vehicle set controller component with the specified parameters.
43 DtVreAirVehicleSetController(const DtString& name, DtLocalObject* owner, DtSimulationServices* simManager,
44 DtComponentDescriptor* desc = 0, DtReaderWriterRegistry* parentRegistry = 0);
45
46 //! \brief Virtual destructor
47 //!
48 //! Cleans up resources used by the air vehicle set controller component.
50
51 //! \brief Gets the type identifier for this component
52 //! \return String identifying the component type (DtVreAirVehicleSetControllerType)
53 //!
54 //! Implements the DtSimComponent::type() method to return the
55 //! type identifier for this component.
56 virtual const char* type() const override;
57
58 //! \brief Factory method to create a new instance of this component
59 //! \param name The name for the new component
60 //! \param owner The local object that will own this component
61 //! \param simManager The simulation services manager
62 //! \param desc Optional component descriptor
63 //! \param parentRegistry Optional parent registry for reader/writer functionality
64 //! \return Pointer to the newly created component
65 //!
66 //! Static factory method used by the component creation system to instantiate
67 //! new instances of this component type.
68 static DtSimComponent* creator(const DtString& name, DtLocalObject* owner, DtSimulationServices* simManager,
69 DtComponentDescriptor* desc = 0, DtReaderWriterRegistry* parentRegistry = 0);
70
71 //! \brief Processes a set altitude message
72 //! \param msg The simulation message containing the altitude setting request
73 //!
74 //! Handles messages requesting to set the altitude for all air vehicles in the set.
75 //! Extracts the altitude value from the message and applies it to the set members.
76 virtual void processSetAltitude(DtSimMessage* msg) override;
77 //! \brief Sets the location for air vehicles in the set
78 //! \param geocentricLocation The new geocentric location vector
79 //! \param dataAvailable Output parameter set to true if the location was successfully set
80 //!
81 //! Sets the geocentric location for all air vehicles in the set. The method updates
82 //! the dataAvailable flag to indicate whether the location was successfully applied.
83 virtual void setLocation(DtVector geocentricLocation, bool& dataAvailable);
84
85private:
86 //! \brief Default constructor (not implemented)
87 //!
88 //! Default constructor is private and not implemented to prevent
89 //! creation of instances without proper initialization.
91
92 //! \brief Copy constructor (not implemented)
93 //!
94 //! Copy constructor is private and not implemented to prevent
95 //! copy construction.
97
98 //! \brief Assignment operator (not implemented)
99 //! \return Reference to this object
100 //!
101 //! Assignment operator is private and not implemented to prevent assignment.
103};
104
105} // namespace makVre
static DtSimComponent * creator(const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
Factory method to create a new instance of this component.
const DtVreAirVehicleSetController & operator=(const DtVreAirVehicleSetController &orig)
Assignment operator (not implemented)
DtVreAirVehicleSetController(const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
Constructor.
virtual const char * type() const override
Gets the type identifier for this component.
virtual ~DtVreAirVehicleSetController() override
Virtual destructor.
DtVreAirVehicleSetController()
Default constructor (not implemented)
DtVreAirVehicleSetController(const DtVreAirVehicleSetController &orig)
Copy constructor (not implemented)
virtual void processSetAltitude(DtSimMessage *msg) override
Processes a set altitude message.
virtual void setLocation(DtVector geocentricLocation, bool &dataAvailable)
Sets the location for air vehicles in the set.
DtVreSetController(const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
Definition vreSetController.h:76
Defines export macros for the vreVrfmodel library.
#define VREVRFMODEL_DLL
Definition export.h:22
Include export definitions for this library.
Definition glsVreMessageUtil.h:49
const char DtVreAirVehicleSetControllerType[]
Type identifier for the VRE air vehicle set controller component.
Definition vreAirVehicleSetController.h:24
Template controller for handling VR-Engage entity control assignments.