VR-Engage  2.2
Loading...
Searching...
No Matches
vortexArtPartDescriptorList.h
Go to the documentation of this file.
1/*******************************************************************************
2** Copyright (c) 2025 MAK Technologies
3** All rights reserved.
4*******************************************************************************/
5
6//! \file vortexArtPartDescriptorList.h
7//! \brief Defines DtVortexSimArtPartDescriptorList for managing collections of Vortex articulated part descriptors
8//! \ingroup vreVrfVortexObjparam
9
10#pragma once
11
13#include <vrfobjparam/simArtPartDescriptorList.h>
14
15namespace makVre
16{
17//! \brief Type identifier string for the DtVortexSimArtPartDescriptorList class
18const char DtVortexSimArtPartDescriptorListType[] = "DtVortexSimArtPartDescriptorList";
19
20//! \brief Collection of articulated part descriptors for Vortex physics simulation
21//!
22//! DtVortexSimArtPartDescriptorList manages a collection of DtVortexSimArtPartDescriptor objects,
23//! providing methods for adding, removing, and accessing Vortex-specific articulated part descriptors.
24//! This class extends the base simulation articulated part descriptor list with Vortex-specific
25//! serialization and cloning functionality.
26class VREVRFVORTEXOBJPARAM_DLL DtVortexSimArtPartDescriptorList : public DtSimArtPartDescriptorList
27{
28public:
29 //! \brief Default constructor
30 //!
31 //! Creates an empty descriptor list with default values
33
34 //! \brief Constructor with list name and registry
35 //! \param name Name of the descriptor list
36 //! \param parentRegistry Optional parent registry for reader/writer operations
37 DtVortexSimArtPartDescriptorList(const DtString& name, DtReaderWriterRegistry* parentRegistry = NULL);
38
39 //! \brief Constructor with symbol list name and registry
40 //! \param name Symbol string name of the descriptor list
41 //! \param parentRegistry Optional parent registry for reader/writer operations
42 DtVortexSimArtPartDescriptorList(const DtSymbolString& name, DtReaderWriterRegistry* parentRegistry = NULL);
43
44 //! \brief Copy constructor with new list name
45 //! \param name New name for the copied descriptor list
46 //! \param orig Original descriptor list to copy from
47 //! \param parentRegistry Optional parent registry for reader/writer operations
49 DtReaderWriterRegistry* parentRegistry = NULL);
50
51 //! \brief Copy constructor with new symbol list name
52 //! \param name New symbol string name for the copied descriptor list
53 //! \param orig Original descriptor list to copy from
54 //! \param parentRegistry Optional parent registry for reader/writer operations
56 DtReaderWriterRegistry* parentRegistry = NULL);
57
58 //! \brief Assignment operator
59 //! \param orig Original descriptor list to copy from
60 //! \return Reference to this descriptor list after assignment
61 //!
62 //! Removes and deletes all entries in the target list, then clones all entries
63 //! from the source list and adds them to the target list.
65
66 //! \brief Virtual destructor
68
69 //! \brief Creates a clone of this descriptor list with a new name
70 //! \param name New name for the cloned descriptor list
71 //! \param parentRegistry Optional parent registry for reader/writer operations
72 //! \return Pointer to a new descriptor list that is a copy of this one
73 virtual DtVortexSimArtPartDescriptorList* clone(const DtString& name,
74 DtReaderWriterRegistry* parentRegistry = NULL) override;
75
76 //! \brief Creates a clone of this descriptor list with a new symbol name
77 //! \param name New symbol string name for the cloned descriptor list
78 //! \param parentRegistry Optional parent registry for reader/writer operations
79 //! \return Pointer to a new descriptor list that is a copy of this one
80 virtual DtVortexSimArtPartDescriptorList* clone(const DtSymbolString& name,
81 DtReaderWriterRegistry* parentRegistry = NULL) override;
82
83 //! \brief Gets the type identifier for reader/writer operations
84 //! \return Type identifier string
85 virtual const char* readerWriterType() const override;
86
87 //! \brief Gets the XML type identifier for serialization
88 //! \return XML type identifier string used when archiving to an XML stream
89 static const char* theXmlType();
90
91 //! \brief Gets the XML type identifier for this instance
92 //! \return XML type identifier string
93 virtual const char* xmlType() const override { return theXmlType(); }
94
95protected:
96 //! \brief Deserializes a DtVortexSimArtPartDescriptor from an MTL stream
97 //! \param args Arguments for deserialization
98 //! \param searchPaths Search paths for resolving references
99 //! \param variableBindings Variable bindings for resolving references
100 //! \return Deserialized object pointer
101 //!
102 //! Constructs a DtVortexSimArtPartDescriptor, retrieves it from the MTL stream,
103 //! and then adds it to the list.
104 virtual DtlObjPtr getData(DtlObjPtr args,
105 const DtReaderWriter::SearchPaths& searchPaths,
106 const DtVariableBindingsList& variableBindings) override;
107};
108
109} // namespace makVre
DtVortexSimArtPartDescriptorList()
Default constructor.
DtVortexSimArtPartDescriptorList & operator=(const DtVortexSimArtPartDescriptorList &orig)
Assignment operator.
virtual DtVortexSimArtPartDescriptorList * clone(const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL) override
Creates a clone of this descriptor list with a new name.
DtVortexSimArtPartDescriptorList(const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL)
Constructor with list name and registry.
virtual DtVortexSimArtPartDescriptorList * clone(const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL) override
Creates a clone of this descriptor list with a new symbol name.
virtual const char * xmlType() const override
Gets the XML type identifier for this instance.
Definition vortexArtPartDescriptorList.h:93
DtVortexSimArtPartDescriptorList(const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL)
Constructor with symbol list name and registry.
virtual ~DtVortexSimArtPartDescriptorList() override
Virtual destructor.
virtual DtlObjPtr getData(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) override
Deserializes a DtVortexSimArtPartDescriptor from an MTL stream.
static const char * theXmlType()
Gets the XML type identifier for serialization.
DtVortexSimArtPartDescriptorList(const DtString &name, const DtVortexSimArtPartDescriptorList &orig, DtReaderWriterRegistry *parentRegistry=NULL)
Copy constructor with new list name.
virtual const char * readerWriterType() const override
Gets the type identifier for reader/writer operations.
DtVortexSimArtPartDescriptorList(const DtSymbolString &name, const DtVortexSimArtPartDescriptorList &orig, DtReaderWriterRegistry *parentRegistry=NULL)
Copy constructor with new symbol list name.
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 DtVortexSimArtPartDescriptorListType[]
Type identifier string for the DtVortexSimArtPartDescriptorList class.
Definition vortexArtPartDescriptorList.h:18