VR-Engage  2.2
Loading...
Searching...
No Matches
vreAmmunitionParams.h
Go to the documentation of this file.
1/*******************************************************************************
2** Copyright (c) 2025 MAK Technologies
3** All rights reserved.
4*******************************************************************************/
5
6//! \file vreAmmunitionParams.h
7//! \ingroup vreVrfobjparam
8//! \brief Ammunition parameters for VREngage
9//!
10//! This file defines the DtVreAmmunitionParams class, which manages ammunition
11//! parameter entries for VREngage simulations. It specializes the base ammunition
12//! parameters to handle VREngage-specific ammunition properties.
13
14#pragma once
15
17#include <vrfobjparam/ammunitionParams.h>
18
19
20namespace makVre
21{
23
24//! \brief Ammunition parameters for VREngage weapon systems
25//!
26//! This class manages a collection of ammunition parameter entries that
27//! configure the DtVreAmmunitionManager. It extends the base ammunition parameters
28//! class to support VREngage-specific ammunition properties and behaviors.
29class VREVRFOBJPARAM_DLL DtVreAmmunitionParams : public DtAmmunitionParams
30{
31public:
32 //! \brief Constructor with reader/writer name
33 //! \param rwName The name of this parameters object
34 //! \param parentRegistry Parent registry for reader/writer functionality (optional)
35 //!
36 //! Creates a new ammunition parameters object with the specified name.
37 DtVreAmmunitionParams(const DtString& rwName, DtReaderWriterRegistry* parentRegistry = NULL);
38
39 //! \brief Constructor with reader/writer name as symbol string
40 //! \param rwName The name of this parameters object as a symbol string
41 //! \param parentRegistry Parent registry for reader/writer functionality (optional)
42 //!
43 //! Creates a new ammunition parameters object with the specified name.
44 DtVreAmmunitionParams(const DtSymbolString& rwName, DtReaderWriterRegistry* parentRegistry = NULL);
45
46 //! \brief Copy constructor
47 //! \param orig The source parameters object to copy from
48 //! \param parentRegistry Parent registry for reader/writer functionality (optional)
49 //!
50 //! Creates a new ammunition parameters object as a copy of the provided original.
51 DtVreAmmunitionParams(const DtVreAmmunitionParams& orig, DtReaderWriterRegistry* parentRegistry = NULL);
52
53 //! \brief Assignment operator
54 //! \param orig The source parameters object to copy from
55 //! \return Reference to this parameters object after assignment
56 //!
57 //! Assigns the contents of the provided parameters object to this one.
59
60 //! \brief Virtual destructor
61 //!
62 //! Cleans up resources used by the parameters object.
63 virtual ~DtVreAmmunitionParams() override;
64
65 //! \brief Empties the ammunition parameter entries list
66 //! \param clearMemory Whether to also clear allocated memory
67 //!
68 //! Removes all ammunition parameter entries from the list, optionally
69 //! freeing the associated memory.
70 virtual void emptyList(bool clearMemory) override;
71
72 //! \brief Copies ammunition parameter entries from another list
73 //! \param source The source ammunition parameters to copy from
74 //!
75 //! Copies all ammunition parameter entries from the provided source parameters.
76 virtual void copyList(const DtAmmunitionParams& source) override;
77
78 //! \brief Creates a new ammunition parameter entry
79 //! \return Pointer to a newly created ammunition parameter entry
80 //!
81 //! Factory method that creates a new VREngage-specific ammunition parameter entry.
82 //! This method enables creating the appropriate derived entry type for VREngage.
83 virtual DtAmmunitionParamsEntry* createAmmunitionTableEntry() const override;
84
85protected:
86 //! \brief Processes input data to create ammunition parameter entries
87 //! \param args Input arguments to process
88 //! \param searchPaths Search paths for resolving file references
89 //! \param variableBindings Variable bindings for resolving script variables
90 //! \return Object pointer containing the processed data
91 //!
92 //! Constructs a DtVreAmmunitionParamsEntry object, reads data from
93 //! the MTL stream, and adds it to the parameters list.
94 virtual DtlObjPtr getData(DtlObjPtr args,
95 const DtReaderWriter::SearchPaths& searchPaths,
96 const DtVariableBindingsList& variableBindings) override;
97};
98} // namespace makVre
Ammunition parameter entry for VREngage weapon systems.
Definition vreAmmunitionParamsEntry.h:28
virtual void emptyList(bool clearMemory) override
Empties the ammunition parameter entries list.
DtVreAmmunitionParams & operator=(const DtVreAmmunitionParams &orig)
Assignment operator.
virtual DtlObjPtr getData(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) override
Processes input data to create ammunition parameter entries.
DtVreAmmunitionParams(const DtSymbolString &rwName, DtReaderWriterRegistry *parentRegistry=NULL)
Constructor with reader/writer name as symbol string.
virtual ~DtVreAmmunitionParams() override
Virtual destructor.
virtual DtAmmunitionParamsEntry * createAmmunitionTableEntry() const override
Creates a new ammunition parameter entry.
DtVreAmmunitionParams(const DtString &rwName, DtReaderWriterRegistry *parentRegistry=NULL)
Constructor with reader/writer name.
DtVreAmmunitionParams(const DtVreAmmunitionParams &orig, DtReaderWriterRegistry *parentRegistry=NULL)
Copy constructor.
virtual void copyList(const DtAmmunitionParams &source) override
Copies ammunition parameter entries from another list.
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