VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOverlayRenderer.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
13 
15 
16 #include <vrvMath/DtMatrix4.h>
17 
18 
19 namespace makVrv
20 {
21  class DtDe;
22  class DtDecalProjectorRenderer;
23  class DtDecalProjectorLineRenderer;
24  struct DtDecalProjectorRendererDrawSettings;
25  class DtQuadProxyInterface;
26  class DtTextProxyInterface;
27  class DtLineRenderer;
28  class DtQuadRenderer;
29  class DtTriangleRenderer;
30  class DtTextRenderer;
31  class DtOverlayResourceProvider;
32  struct DtObserverRenderData;
33  struct DtOverlayRenderData;
34 
35 
39  {
40  public:
43 
44  // Unimplemented Copy CTOR
46 
47  // Unimplemented Assignment Operator
48  DtOverlayRendererCreator& operator=(const DtOverlayRendererCreator& rhs) = delete;
49 
51  virtual ~DtOverlayRendererCreator();
52 
53  public:
54 
58 
59  };
60 
68  {
70 
71  public:
72 
74  virtual ~DtOverlayRenderer();
75 
77  DtOverlayRenderer() = delete;
78 
81  const DtOverlayRenderer &other) = delete;
82 
84  DtOverlayRenderer &operator=(
85  const DtOverlayRenderer &other) = delete;
86 
87  public:
88 
91  virtual bool render(const DtOverlayRenderData& overlayRenderData,
92  const DtObserverRenderData& channelRenderData,
93  const double* currentProjectionMatrix);
94 
96  virtual void releaseResources();
97 
98  virtual void setProjectCameraIs3D(bool is3D);
99  virtual bool projectCameraIs3D() const;
100 
101  virtual void setProjectCameraIsNormalized( bool isNormalize);
102  virtual bool projectCameraIsNormalized() const;
103 
104  virtual DtOverlayResourceProvider& resourceProvider();
105  virtual DtLineRenderer& lineRenderer() const;
106  virtual DtQuadRenderer& quadRenderer() const;
107  virtual DtTriangleRenderer& triangleRenderer() const;
108  virtual DtTextRenderer& textRenderer() const;
109 
110  virtual DtQuadProxyInterface* createQuadProxyInterface(DtQuadProxyInterface::FillType type = DtQuadProxyInterface::Fill_Solid) override;
111  virtual DtTextProxyInterface* createTextProxyInterface() override;
112  virtual DtLineSegmentInterface* createLineSegmentInterface() override;
113  virtual DtTexturedLineSegmentInterface* createTexturedLineSegmentInterface() override;
114  virtual DtDecalProjectorComponentInterface* createDecalProjectorComponentInterface(
116 
117 
119  virtual bool somethingToRender(
120  DtOverlayResourceRequirements& resourceRequirements) const;
121 
122  protected:
123 
126 
127  // Computes the draw settings required for decal projectors.
128  virtual void computeDecalProjectorDrawSetting(
129  const DtOverlayRenderData& overlayRenderData,
130  const DtObserverRenderData& channelRenderData,
131  DtDecalProjectorRendererDrawSettings& outDrawSettings);
132 
138  static void fillInNormalizedProjectionMatrix(const int viewport[4], double mat[16] );
139 
144  static void fillInTextProjectionMatrix(const int viewport[4], double mat[16] );
145 
146  protected:
147 
157  };
158 }
DtOverlayResourceProvider & myProvider
Definition: DtOverlayRenderer.h:148
A class responsible for rendering decal projectors for a camera context.
Definition: DtDecalProjectorRenderer.h:93
A class responsible for rendering line decal projectors for a camera context.
Definition: DtDecalProjectorLineRenderer.h:33
DtQuadRenderer * myQuadsRenderer
Definition: DtOverlayRenderer.h:150
bool myProjectCameraIsNormalized
Definition: DtOverlayRenderer.h:156
A structure to hold rendering requiresments for overlays. This is used to update overlay resource pro...
Definition: DtCommonRenderData.h:84
RenderingType
Enumeration for component renderer topology to use.
Definition: DtDecalProjectorComponentInterface.h:48
DtTextRenderer * myTextRenderer
Definition: DtOverlayRenderer.h:152
Definition: DtQuadProxyInterface.h:27
Interface for creating instances of the DtOverlayRendererCreator.
Definition: DtOverlayRenderer.h:38
A structure used to pass draw settings to the draw method. All matrix order is Row Major coming from ...
Definition: DtDecalProjectorRenderer.h:43
Contains the makVrv::DtOverlayRendererInterface class declaration.
A class which allocates and draws quads.
Definition: DtQuadRenderer.h:44
bool myProjectCameraIs3D
Definition: DtOverlayRenderer.h:155
A class which represents a component for a decal projector.
Definition: DtDecalProjectorComponentInterface.h:43
The triangle renderer.
Definition: DtTriangleRenderer.h:47
An interface for a single line segment.
Definition: DtLineSegmentInterface.h:23
A class for rendering text object.
Definition: DtTextRenderer.h:58
The overlay resource provider class provides resources for overlay drawing classes.
Definition: DtOverlayResourceProvider.h:28
friend DtOverlayRendererCreator
Definition: DtOverlayRenderer.h:69
#define DT_DLL_VRVGRAPHICS
Contains DLL export macros.
Definition: vrvGraphics.h:19
An interface for a textured single line segment.
Definition: DtTexturedLineSegmentInterface.h:18
A class for controlling text owned by the TextRenderer.
Definition: DtTextProxyInterface.h:30
A single 2D quadrilateral.
Definition: DtQuadProxyInterface.h:21
DtLineRenderer * myLinesRenderer
Definition: DtOverlayRenderer.h:149
Abstract interface for creating instances of the DtOverlayRendererInterface.
Definition: DtOverlayRendererInterface.h:39
DtTriangleRenderer * myTrianglesRenderer
Definition: DtOverlayRenderer.h:151
A structure to hold rendering information for overlays. This is used to pass to various overlay rende...
Definition: DtCommonRenderData.h:43
FillType
Definition: DtQuadProxyInterface.h:25
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
DtDecalProjectorLineRenderer * myDecalProjectorLineRenderer
Definition: DtOverlayRenderer.h:154
Definition: DtCommonRenderData.h:33
A class responsible for rendering lines.
Definition: DtLineRenderer.h:49
The DtOverlayRendererInterface implements the overlay concept. An overlay is a 2D scene that is drawn...
Definition: DtOverlayRendererInterface.h:80
4 dimensional matrix
DtDecalProjectorRenderer * myDecalProjectorTriangleRenderer
Definition: DtOverlayRenderer.h:153
The DtOverlayRenderer implements the overlay concept. An overlay is a 2D scene that is drawn on top o...
Definition: DtOverlayRenderer.h:67

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)