VR-Engage  2.2
Loading...
Searching...
No Matches
vortexInterfaceDescriptor.h
Go to the documentation of this file.
1/*******************************************************************************
2** Copyright (c) 2025 MAK Technologies
3** All rights reserved.
4*******************************************************************************/
5
6//! \file vortexInterfaceDescriptor.h
7//! \brief Defines DtVortexInterfaceDescriptor for managing Vortex interface parameters
8//! \ingroup vreVrfVortexObjparam
9
10#pragma once
11
14
15namespace makVre
16{
17//! \brief Type identifier string for the DtVortexInterfaceDescriptor class
18const char DtVortexInterfaceDescriptorType[] = "DtVortexInterfaceDescriptor";
19
20//! \brief Descriptor for Vortex physics engine interfaces
21//!
22//! DtVortexInterfaceDescriptor manages interfaces for the Vortex physics engine,
23//! defining input and output parameters through separate element lists. It provides
24//! methods to set and retrieve the interface name and parameter lists, and supports
25//! serialization to and from XML.
27{
28public:
29 //! \brief Default constructor
30 //!
31 //! Creates an empty interface descriptor
33
34 //! \brief Constructor with interface name and registry
35 //! \param name Name of the interface descriptor
36 //! \param parentRegistry Optional parent registry for reader/writer operations
37 DtVortexInterfaceDescriptor(const DtString& name, DtReaderWriterRegistry* parentRegistry = 0);
38
39 //! \brief Constructor with symbol interface name and registry
40 //! \param name Symbol string name of the interface descriptor
41 //! \param parentRegistry Optional parent registry for reader/writer operations
42 DtVortexInterfaceDescriptor(const DtSymbolString& name, DtReaderWriterRegistry* parentRegistry = 0);
43
44 //! \brief Copy constructor
45 //! \param orig Original interface descriptor to copy from
46 //! \param parentRegistry Optional parent registry for reader/writer operations
47 DtVortexInterfaceDescriptor(const DtVortexInterfaceDescriptor& orig, DtReaderWriterRegistry* parentRegistry = 0);
48
49 //! \brief Assignment operator
50 //! \param orig Original interface descriptor to copy from
51 //! \return Reference to this interface descriptor after assignment
53
54 //! \brief Virtual destructor
55 virtual ~DtVortexInterfaceDescriptor() override;
56
57 //! \brief Sets the name of the Vortex interface
58 //! \param interfaceName The name to set for this interface
59 virtual void setVortexInterfaceName(const std::string& interfaceName);
60
61 //! \brief Gets the name of the Vortex interface
62 //! \return The name of this interface
63 virtual std::string vortexInterfaceName() const;
64
65 //! \brief Sets the list of input interface elements
66 //! \param list The list of input interface elements to set
67 virtual void setInputList(const DtVortexInterfaceElementList& list);
68
69 //! \brief Gets the list of input interface elements
70 //! \return Constant reference to the list of input interface elements
72
73 //! \brief Sets the list of output interface elements
74 //! \param list The list of output interface elements to set
76
77 //! \brief Gets the list of output interface elements
78 //! \return Constant reference to the list of output interface elements
80
81 //! \brief Gets the type identifier for reader/writer operations
82 //! \return Type identifier string
83 virtual const char* readerWriterType() const override;
84
85 //! \brief Gets the XML type identifier for serialization
86 //! \return XML type identifier string used when archiving to an XML stream
87 static const char* theXmlType();
88
89 //! \brief Gets the XML type identifier for this instance
90 //! \return XML type identifier string
91 virtual const char* xmlType() const override { return theXmlType(); }
92
93protected:
94 //! \brief The name of this Vortex interface
95 DtRwString myInterfaceName;
96
97 //! \brief List of input interface elements for this interface
99
100 //! \brief List of output interface elements for this interface
102};
103
104//! \brief Type definition for a list of Vortex interface descriptors
105//!
106//! This list template specialization manages ownership of the descriptors
107//! and handles proper deletion when the list is destroyed
108using DtVortexInterfaceDescriptorList = DtRwTemplatedListPtr<DtVortexInterfaceDescriptor, true>;
109} // namespace makVre
virtual const char * xmlType() const override
Gets the XML type identifier for this instance.
Definition vortexInterfaceDescriptor.h:91
DtVortexInterfaceDescriptor(const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=0)
Constructor with symbol interface name and registry.
virtual void setVortexInterfaceName(const std::string &interfaceName)
Sets the name of the Vortex interface.
virtual const DtVortexInterfaceElementList & outputList() const
Gets the list of output interface elements.
DtVortexInterfaceDescriptor()
Default constructor.
DtRwString myInterfaceName
The name of this Vortex interface.
Definition vortexInterfaceDescriptor.h:95
virtual const DtVortexInterfaceElementList & inputList() const
Gets the list of input interface elements.
virtual ~DtVortexInterfaceDescriptor() override
Virtual destructor.
DtVortexInterfaceDescriptor(const DtVortexInterfaceDescriptor &orig, DtReaderWriterRegistry *parentRegistry=0)
Copy constructor.
virtual const char * readerWriterType() const override
Gets the type identifier for reader/writer operations.
static const char * theXmlType()
Gets the XML type identifier for serialization.
virtual std::string vortexInterfaceName() const
Gets the name of the Vortex interface.
DtVortexInterfaceElementList myOutputList
List of output interface elements for this interface.
Definition vortexInterfaceDescriptor.h:101
DtVortexInterfaceElementList myInputList
List of input interface elements for this interface.
Definition vortexInterfaceDescriptor.h:98
virtual void setOutputList(const DtVortexInterfaceElementList &list)
Sets the list of output interface elements.
DtVortexInterfaceDescriptor & operator=(const DtVortexInterfaceDescriptor &orig)
Assignment operator.
DtVortexInterfaceDescriptor(const DtString &name, DtReaderWriterRegistry *parentRegistry=0)
Constructor with interface name and registry.
virtual void setInputList(const DtVortexInterfaceElementList &list)
Sets the list of input interface elements.
Defines export macros for the vreVrfVortexObjparam library.
#define VREVRFVORTEXOBJPARAM_DLL
Definition export.h:19
Include export definitions for this library.
Definition glsVreMessageUtil.h:49
const char DtVortexInterfaceDescriptorType[]
Type identifier string for the DtVortexInterfaceDescriptor class.
Definition vortexInterfaceDescriptor.h:18
DtRwTemplatedListPtr< DtVortexInterfaceElementDescriptor, true > DtVortexInterfaceElementList
Type definition for a list of Vortex interface element descriptors.
Definition vortexInterfaceElementDescriptor.h:98
DtRwTemplatedListPtr< DtVortexInterfaceDescriptor, true > DtVortexInterfaceDescriptorList
Type definition for a list of Vortex interface descriptors.
Definition vortexInterfaceDescriptor.h:108
Defines DtVortexInterfaceElementDescriptor for Vortex interface parameter elements.