VR-Engage  2.2
Loading...
Searching...
No Matches
ballisticGunJoyControllerDescriptor.h
Go to the documentation of this file.
1/*******************************************************************************
2** Copyright (c) 2025 MAK Technologies
3** All rights reserved.
4*******************************************************************************/
5
6//! \file ballisticGunJoyControllerDescriptor.h
7//! \ingroup vreVrfobjparam
8//! \brief Ballistic gun joystick controller descriptor for VREngage
9//!
10//! This file defines the DtBallisticGunJoyControllerDescriptor class, which configures
11//! joystick-controlled ballistic gun components in VREngage. It combines joystick device
12//! controls with ballistic gun functionality, enabling joystick-based weapon aiming and firing.
13
14#pragma once
15
17
18#include <vrfobjparam/joyDeviceControllerDescriptor.h>
19#include <vrfobjparam/ballisticGunControllerDescriptor.h>
20
21//! \brief Type identifier string for the ballistic gun joystick controller descriptor
22const char DtBallisticGunJoyControllerDescriptorType[] = "ballistic-gun-joy-ctrl-descriptor";
23
24namespace makVre
25{
26//! \brief Ballistic gun joystick controller descriptor for VREngage
27//!
28//! This class defines a descriptor for the ballistic gun joystick controller component,
29//! which allows ballistic guns to be controlled via joystick input devices. It combines
30//! joystick device controller functionality with ballistic gun controller capabilities,
31//! enabling game controller-based weapon aiming and firing in VREngage simulations.
32//!
33//! This descriptor template combines joystick device controller capabilities with
34//! ballistic gun controller configuration options.
36 : public DtJoyDeviceControllerDescriptorTemplate<DtBallisticGunControllerDescriptor>
37{
38public:
39 //! \brief Constructor with component name
40 //! \param name The name of this component
41 //! \param parentRegistry Parent registry for reader/writer functionality (optional)
42 //!
43 //! Creates a new ballistic gun joystick controller descriptor with the specified name.
44 DtBallisticGunJoyControllerDescriptor(const DtString& name, DtReaderWriterRegistry* parentRegistry = NULL);
45
46 //! \brief Constructor with component name as symbol string
47 //! \param name The name of this component as a symbol string
48 //! \param parentRegistry Parent registry for reader/writer functionality (optional)
49 //!
50 //! Creates a new ballistic gun joystick controller descriptor with the specified name.
51 DtBallisticGunJoyControllerDescriptor(const DtSymbolString& name, DtReaderWriterRegistry* parentRegistry = NULL);
52
53 //! \brief Copy constructor
54 //! \param orig The source descriptor to copy from
55 //! \param parentRegistry Parent registry for reader/writer functionality (optional)
56 //!
57 //! Creates a new ballistic gun joystick controller descriptor as a copy of the provided original.
59 const DtBallisticGunJoyControllerDescriptor& orig, DtReaderWriterRegistry* parentRegistry = NULL);
60
61 //! \brief Virtual destructor
62 //!
63 //! Cleans up resources used by the descriptor.
65
66 //! \brief Creates a clone of this descriptor
67 //! \param parentRegistry Parent registry for reader/writer functionality (optional)
68 //! \return Pointer to a new descriptor that is a clone of this one
69 //!
70 //! Creates a new ballistic gun joystick controller descriptor as a deep copy of this one.
71 virtual DtComponentDescriptor* clone(DtReaderWriterRegistry* parentRegistry = NULL) const override;
72
73 //! \brief Factory function to create a new instance of this descriptor
74 //! \return Pointer to a newly created descriptor
75 //!
76 //! Static factory function used by the descriptor creation system to instantiate
77 //! new instances of this descriptor type.
78 static DtComponentDescriptor* creator();
79
80 //! \brief Gets the type identifier for this descriptor
81 //! \return String identifying this descriptor type
82 //!
83 //! Returns a unique type identifier string for this descriptor type.
84 //! Used for creating descriptors from MTL files.
85 virtual DtString type() const override;
86};
87} // namespace makVre
const char DtBallisticGunJoyControllerDescriptorType[]
Type identifier string for the ballistic gun joystick controller descriptor.
Definition ballisticGunJoyControllerDescriptor.h:22
virtual ~DtBallisticGunJoyControllerDescriptor() override
Virtual destructor.
DtBallisticGunJoyControllerDescriptor(const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL)
Constructor with component name.
DtBallisticGunJoyControllerDescriptor(const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL)
Constructor with component name as symbol string.
virtual DtComponentDescriptor * clone(DtReaderWriterRegistry *parentRegistry=NULL) const override
Creates a clone of this descriptor.
virtual DtString type() const override
Gets the type identifier for this descriptor.
DtBallisticGunJoyControllerDescriptor(const DtBallisticGunJoyControllerDescriptor &orig, DtReaderWriterRegistry *parentRegistry=NULL)
Copy constructor.
static DtComponentDescriptor * creator()
Factory function to create a new instance of this descriptor.
Export macros for the VREngage Object Parameter library.
#define VREVRFOBJPARAM_DLL
Platform-specific DLL export/import declaration.
Definition export.h:27
Include export definitions for this library.
Definition glsVreMessageUtil.h:49