VR-Engage  2.2
Loading...
Searching...
No Matches
vreVrfEmbarkationPSR.h
Go to the documentation of this file.
1/*******************************************************************************
2** Copyright (c) 2025 MAK Technologies
3** All rights reserved.
4*******************************************************************************/
5
6//! \file vreVrfEmbarkationPSR.h
7//! \ingroup vreVrfobjcore
8//! \brief Embarkation process state repository for VREngage
9//!
10//! This file defines the DtVreVrfEmbarkationPSR class, which extends the basic embarkation PSR
11//! to provide VREngage-specific functionality for entity embarkation. It adds support for
12//! tracking slot points and other embarkation-related state data.
13
14#pragma once
15
17
18#include <vrfobjcore/vrfEmbarkationPSR.h>
19
20namespace makVre
21{
22//! \brief Type identifier string for the VREngage embarkation PSR
23const char DtVreVrfEmbarkationPSRType[] = "vre-vrf-embarkation-psr";
24
25//! \brief Extended embarkation process state repository for VREngage
26//!
27//! This class extends the basic embarkation PSR to provide VREngage-specific
28//! functionality for entity embarkation operations. It adds support for tracking
29//! slot points and other embarkation-related state data, which is used to position
30//! entities during embarkation and to animate embarkation sequences.
31class VREVRFOBJCORE_DLL DtVreVrfEmbarkationPSR : public DtVrfEmbarkationPSR
32{
33public:
34 //! \brief Constructor with VRF object and optional name
35 //! \param vrfObject Pointer to the local object this PSR is associated with
36 //! \param rwName Optional reader/writer name
37 //! \param parentRegistry Optional parent registry for reader/writer functionality
38 //!
39 //! Creates a new embarkation PSR for the specified VRF object.
40 DtVreVrfEmbarkationPSR(DtLocalObject* vrfObject, const DtString& rwName = DtString::nullString(),
41 DtReaderWriterRegistry* parentRegistry = 0);
42
43 //! \brief Copy constructor
44 //! \param orig The source PSR to copy from
45 //! \param rwName Optional reader/writer name
46 //! \param parentRegistry Optional parent registry for reader/writer functionality
47 //!
48 //! Creates a new embarkation PSR as a copy of the provided original.
49 DtVreVrfEmbarkationPSR(const DtVreVrfEmbarkationPSR& orig, const DtString& rwName = DtString::nullString(),
50 DtReaderWriterRegistry* parentRegistry = 0);
51
52 //! \brief Virtual destructor
53 //!
54 //! Cleans up resources used by the PSR.
55 virtual ~DtVreVrfEmbarkationPSR() override;
56
57 //! \brief Assignment operator
58 //! \param orig The source PSR to copy from
59 //! \return Reference to this PSR after assignment
60 //!
61 //! Assigns the contents of the provided PSR to this one.
63
64 //! \brief Creates a clone of this PSR
65 //! \param rwName Optional reader/writer name for the clone
66 //! \param parentRegistry Optional parent registry for reader/writer functionality
67 //! \return Pointer to a new PSR that is a clone of this one
68 //!
69 //! Creates a new embarkation PSR as a deep copy of this one.
70 virtual DtVrfProcessStateRepository* clone(
71 const DtString& rwName = DtString::nullString(), DtReaderWriterRegistry* parentRegistry = 0) const override;
72
73 //! \brief Gets the type identifier for this PSR
74 //! \return String identifying this PSR type
75 //!
76 //! Returns a unique type identifier string for this PSR type.
77 //! Will return DtVreVrfEmbarkationPSRType.
78 virtual DtString type() const override;
79
80 //! \brief Gets the slot point for embarkation
81 //! \return Const reference to the slot point vector
82 //!
83 //! Returns the slot point where an entity should be positioned during
84 //! embarkation. This is the point in local coordinates where the embarking
85 //! entity should initially be placed.
86 virtual const DtRwVector& slotPoint() const;
87
88 //! \brief Sets the slot point for embarkation
89 //! \param slotPoint The new slot point vector
90 //!
91 //! Sets the slot point where an entity should be positioned during
92 //! embarkation. This is the point in local coordinates where the embarking
93 //! entity should initially be placed.
94 virtual void setSlotPoint(const DtRwVector& slotPoint);
95
96 //! \brief Factory function to create a new instance of this PSR
97 //! \param rwName The reader/writer name for the new instance
98 //! \param vrfObject Pointer to the local object this PSR will be associated with
99 //! \param parentRegistry Parent registry for reader/writer functionality
100 //! \return Pointer to a newly created PSR instance
101 //!
102 //! Static factory function used by the PSR creation system to instantiate
103 //! new instances of this PSR type.
104 static DtVrfProcessStateRepository* creator(
105 const DtString& rwName, DtLocalObject* vrfObject, DtReaderWriterRegistry* parentRegistry);
106
107protected:
108 //! \brief Slot point for embarkation
109 //!
110 //! Stores the slot point where an entity should be positioned during
111 //! embarkation. This is the point in local coordinates where the embarking
112 //! entity should initially be placed.
113 DtRwVector mySlotPoint;
114};
115
116} // namespace makVre
virtual ~DtVreVrfEmbarkationPSR() override
Virtual destructor.
DtVreVrfEmbarkationPSR(DtLocalObject *vrfObject, const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0)
Constructor with VRF object and optional name.
virtual DtVrfProcessStateRepository * clone(const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) const override
Creates a clone of this PSR.
DtVreVrfEmbarkationPSR(const DtVreVrfEmbarkationPSR &orig, const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0)
Copy constructor.
DtRwVector mySlotPoint
Slot point for embarkation.
Definition vreVrfEmbarkationPSR.h:113
virtual const DtRwVector & slotPoint() const
Gets the slot point for embarkation.
virtual void setSlotPoint(const DtRwVector &slotPoint)
Sets the slot point for embarkation.
static DtVrfProcessStateRepository * creator(const DtString &rwName, DtLocalObject *vrfObject, DtReaderWriterRegistry *parentRegistry)
Factory function to create a new instance of this PSR.
DtVreVrfEmbarkationPSR & operator=(const DtVreVrfEmbarkationPSR &orig)
Assignment operator.
virtual DtString type() const override
Gets the type identifier for this PSR.
Export macros for the VREngage Object Core library.
#define VREVRFOBJCORE_DLL
Platform-specific DLL export/import declaration.
Definition export.h:27
Include export definitions for this library.
Definition glsVreMessageUtil.h:49
const char DtVreVrfEmbarkationPSRType[]
Type identifier string for the VREngage embarkation PSR.
Definition vreVrfEmbarkationPSR.h:23