VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtMetadataPublisher.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 VT-MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
13 
14 #include <vrvCore/DtUniqueID.h>
15 
16 #include <vrvUtil/DtUnicode.h>
17 
18 #include <matrix/vlVector.h>
19 
20 namespace makArchives
21 {
22  class DtMetadataPublisherRecord;
23 }
24 
25 namespace makVrv
26 {
27  class DtObserver;
28  class DtDe;
29  class DtVideoStream;
30  class DtSceneObject;
31  class DtChannel;
32 
37  {
38  public:
41 
43  virtual ~DtMetadataPublisher();
44 
46  virtual void realize( const makArchives::DtMetadataPublisherRecord& metadataConfig );
47 
49  virtual void setObserverName( const DtUnicode& observerName );
50 
53  virtual bool isAttached();
54 
56  virtual void attachEntity( makVrv::DtUniqueID entity );
57 
60  virtual void detach();
61 
63  typedef std::vector<DtMetadataElement*> MetadataElementList;
64 
68  virtual void addMetadataElement( DtMetadataElement* element );
69 
71  virtual MetadataElementList& MetadataElement();
72 
74  virtual void tick( double dt );
75 
76  // Get the total number of bytes currently in the publisher's buffer
77  virtual int numBytes();
78 
80  virtual unsigned char* bytes();
81 
86  virtual const DtVideoStream& videoStream();
87 
94  virtual const DtSceneObject& attachedEntitySceneObject();
95 
103  virtual const DtObserver& observer();
104 
108  virtual bool haveValidTargetPoint() const;
109 
112  virtual DtVector targetPoint() const;
113 
118  virtual DtDe& de();
119 
120  protected:
121 
123  DtMetadataPublisher( DtDe& de, const DtVideoStream& videoStream );
124 
126  virtual void slot_attachToChanged( makVrv::DtObserver* obs );
127 
129  virtual void slot_destroyObserver( makVrv::DtObserver* obs );
130 
133  virtual DtSceneObject* findSceneObjectFromElement( const DtElementID& id );
134 
137  virtual void updateTargetPoint();
138 
139  private:
140 
143 
146 
148  DtMetadataPublisher& operator=( const DtMetadataPublisher& rhs );
149 
150  protected:
156 
160 
161  unsigned char* myBuffer;
166  std::vector<DtElementID> myIgnoreList;
167  };
168 
170  {
171  public:
173  virtual ~DtMetadataPublisherCreator();
174 
175  virtual DtMetadataPublisher* create( DtDe& de, const DtVideoStream& videoStream ) = 0;
176  };
177 }
A DtVideoStream instance will create a single streaming video pipeline on the channel indicated by wi...
Definition: DtVideoStream.h:34
DtDe & myDe
Definition: DtMetadataPublisher.h:151
const DtVideoStream & myVideoStream
Definition: DtMetadataPublisher.h:152
A unicode string.
Definition: DtUnicode.h:33
DtMetadataPublisher defines the interface for all metadata publishers, as well as the implementation ...
Definition: DtMetadataPublisher.h:36
#define DT_DLL_VRVVIDEOSTREAM
Definition: vrvVideoStream.h:20
Record for a metadata publisher Defines both the type and parameters.
Definition: DtMetadataPublisherRecord.h:21
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
unsigned char * myBuffer
Definition: DtMetadataPublisher.h:161
MetadataElementList myElements
Definition: DtMetadataPublisher.h:153
DtVector myTargetPoint
Definition: DtMetadataPublisher.h:164
The abstract Channel Class.
Definition: DtChannel.h:30
bool myValidTargetPoint
Definition: DtMetadataPublisher.h:163
bool myIsAttached
Definition: DtMetadataPublisher.h:158
A facade for a DtObserverObject.
Definition: DtObserver.h:37
DtChannel * myChannel
Definition: DtMetadataPublisher.h:155
makVrv::DtUniqueID myAttachedEntity
Definition: DtMetadataPublisher.h:159
DtMetadataElement is an abstract class that defines the interface common to all metadata elements...
Definition: DtMetadataElement.h:22
DtSceneObject * myAttachedEntitySceneObject
Definition: DtMetadataPublisher.h:157
Definition: DtMetadataPublisher.h:169
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
int myBufferLength
Definition: DtMetadataPublisher.h:162
std::vector< DtMetadataElement * > MetadataElementList
Metadata Element list type.
Definition: DtMetadataPublisher.h:63
std::vector< DtElementID > myIgnoreList
ignore list for the intersection search (contain the current attach element ID)
Definition: DtMetadataPublisher.h:166
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:41
Contains makVrv::DtUniqueID type.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtObserver * myObserver
Definition: DtMetadataPublisher.h:154
Contains the DtMetadataElement class declaration.

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)