VR-Engage  2.2
Loading...
Searching...
No Matches
vreLaserGuidedLauncherController.h
Go to the documentation of this file.
1/*******************************************************************************
2** Copyright (c) 2025 MAK Technologies
3** All rights reserved.
4*******************************************************************************/
5
6//! \file vreLaserGuidedLauncherController.h
7//! \ingroup vreVrfmodel
8//! \brief Controller for laser-guided launcher systems
9//!
10//! This file defines the DtVreLaserGuidedLauncherController class which extends
11//! the integrated laser guided launcher controller with support for "lock on after
12//! launch" functionality. It is designed to be used with the VRE_Fire_Missile lua task.
13
14#pragma once
15
16#include "vreVrfmodel/export.h"
17#include <vrfmodel/integratedLaserGuidedLauncherController.h>
19
20class DtLaserGuidedLauncherControllerDescriptor;
21class DtLaserLauncherPSR;
22class DtVectorOutputPort;
23class DtSimMessage;
24
25namespace makVrf
26{
27class DtLaserDesignatorStateComponent;
28}
29
30namespace makVre
31{
32//! \brief Type identifier for the VRE laser guided launcher controller component
33const char DtVreLaserGuidedLauncherControllerType[] = "vre-integrated-laser-guided-launcher-controller";
34
35//! \brief Controller for managing laser-guided missile systems
36//!
37//! DtVreLaserGuidedLauncherController extends the base integrated laser guided launcher
38//! with support for "lock on after launch" mode. This controller is specifically designed
39//! to be used with the VRE_Fire_Missile lua task and supports advanced laser-guided
40//! weapon functionality such as post-launch target designation and acquisition.
42 : public DtVreSimComponent<DtIntegratedLaserGuidedLauncherController>
43{
44private:
45 //! \brief Default constructor (not implemented)
46 //!
47 //! Default constructor is private and not implemented to prevent
48 //! creation of instances without proper initialization.
50 //! \brief Copy constructor (not implemented)
51 //!
52 //! Copy constructor is private and not implemented to prevent
53 //! copy construction.
55 //! \brief Assignment operator (not implemented)
56 //! \return Reference to this object
57 //!
58 //! Assignment operator is private and not implemented to prevent assignment.
60
61public:
62 //! \brief Constructor
63 //! \param name The name of this component
64 //! \param owner The local object that owns this component
65 //! \param simManager The simulation services manager
66 //! \param compDesc Component descriptor with configuration parameters
67 //! \param parentRegistry Optional parent registry for reader/writer functionality
68 //!
69 //! Creates a new laser guided launcher controller with the specified parameters.
70 DtVreLaserGuidedLauncherController(const DtString& name, DtLocalObject* owner, DtSimulationServices* simManager,
71 DtComponentDescriptor* compDesc = 0, DtReaderWriterRegistry* parentRegistry = 0);
72
73 //! \brief Virtual destructor
74 //!
75 //! Cleans up resources used by the laser guided launcher controller.
77
78 //! \brief Gets the type identifier for this component
79 //! \return String identifying the component type (DtVreLaserGuidedLauncherControllerType)
80 //!
81 //! Implements the DtSimComponent::type() method to return the
82 //! type identifier for this component.
83 virtual const char* type() const override;
84
85 //! \brief Factory method to create a new instance of this component
86 //! \param name The name for the new component
87 //! \param owner The local object that will own this component
88 //! \param simManager The simulation services manager
89 //! \param desc Optional component descriptor
90 //! \param parentRegistry Optional parent registry for reader/writer functionality
91 //! \return Pointer to the newly created component
92 //!
93 //! Static factory method used by the component creation system to instantiate
94 //! new instances of this component type.
95 static DtSimComponent* creator(const DtString& name, DtLocalObject* owner, DtSimulationServices* simManager,
96 DtComponentDescriptor* desc = 0, DtReaderWriterRegistry* parentRegistry = 0);
97
98protected:
99 //! \brief Determines if the launcher has permission to fire
100 //! \param localSpotPosition The target position in local coordinates
101 //! \return True if firing is permitted, false otherwise
102 //!
103 //! Overridden to check top level tasks for "vre_fire_missile", as Fire at Target is a
104 //! subtask when firing as a role player. This allows for proper fire permission checking
105 //! in VR-Engage scenarios.
106 // virtual bool permissionToFire(const DtVector& localSpotPosition) const override;
107};
108} // namespace makVre
DtVreLaserGuidedLauncherController(const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *compDesc=0, DtReaderWriterRegistry *parentRegistry=0)
Constructor.
virtual const char * type() const override
Gets the type identifier for this component.
DtVreLaserGuidedLauncherController(const DtVreLaserGuidedLauncherController &orig)
Copy constructor (not implemented)
DtVreLaserGuidedLauncherController & operator=(const DtVreLaserGuidedLauncherController &orig)
Assignment operator (not implemented)
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.
DtVreLaserGuidedLauncherController()
Default constructor (not implemented)
virtual ~DtVreLaserGuidedLauncherController() override
Virtual destructor.
DtVreSimComponent(const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
Definition vreSimComponent.h:54
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 DtVreLaserGuidedLauncherControllerType[]
Type identifier for the VRE laser guided launcher controller component.
Definition vreLaserGuidedLauncherController.h:33
Definition connectorAccessory.h:39
Base template class for VR-Engage simulation components.