RadarFX API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
radarFxMetadataPublisher.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <radarFxServer/export.h>
13 
14 #include <vrvVideoStream/DtVideoStreamManager.h>
15 #include <vrvVideoStream/DtMetadataPublisher.h>
16 
17 #include <vrvUtil/DtSignalConnectionManager.h>
18 
19 namespace makVrv
20 {
21  class DtOsgChannel;
22  class DtIntersector;
23  class DtCoordinateSystem;
24 }
25 
26 namespace makRadarFx
27 {
28 
29 extern const char* DtRadarFxMetadataPublisherName;
30 
31 class DT_DLL_RFXSERVER DtRadarFxMetadataPublisher : public makVrv::DtMetadataPublisher
32 {
33  public:
35 
36  virtual ~DtRadarFxMetadataPublisher();
37 
38  virtual void tick(double dt);
39 
41 
42 
43 
44  virtual bool haveValidUpperLeftCorner() const;
45  virtual bool haveValidUpperRightCorner() const;
46  virtual bool haveValidLowerRightCorner() const;
47  virtual bool haveValidLowerLeftCorner() const;
48  virtual bool haveValidCenterPoint() const;
50 
52 
53  virtual DtVector upperLeftCorner() const;
54  virtual DtVector upperRightCorner() const;
55  virtual DtVector lowerRightCorner() const;
56  virtual DtVector lowerLeftCorner() const;
57  virtual DtVector centerPoint() const;
59 
60  protected:
61  DtRadarFxMetadataPublisher(makVrv::DtDe& de, const makVrv::DtVideoStream& videoStream);
62  virtual void updateTargetCorners();
63  virtual void updateOrthoTargetCorners(double& left, double& right,
64  double& bottom, double& top,
65  double& zNear, double& zFar);
66  virtual void updateFrustumTargetCorners();
67  virtual makVrv::DtOsgChannel* getChannel();
68 
70  virtual void slot_coordinateSystemChanged();
71 
72  protected:
73 
79  DtVector myUpperLeftCorner; // point 1 in standard
80  DtVector myUpperRightCorner; // point 2 in standard
81  DtVector myLowerRightCorner; // point 3 in standard
82  DtVector myLowerLeftCorner; // point 4 in standard
83  DtVector myCenterPoint;
84 
85  makVrv::DtIntersector* myIntersector;
86 
87  makVrv::DtSignalConnectionManager myConnections;
88 
91  makVrv::DtCoordinateSystem* myCoordinateSystem = nullptr;
92 
93  makVrv::DtOsgChannel* myChannel;
94 };
95 
96 class DT_DLL_RFXSERVER DtRadarFxMetadataPublisherCreator : public makVrv::DtMetadataPublisherCreator
97 {
98  public:
99  friend class makVrv::DtVideoStreamManager;
100 
102 
104 
105  protected:
106  virtual makVrv::DtMetadataPublisher* create(makVrv::DtDe& de, const makVrv::DtVideoStream& videoStream);
107 };
108 
109 }

Document ID: 1.0
Copyright © 2015 VT MÄK Inc. All Rights Reserved (www.mak.com)