VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTextProxy.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 
16 
17 #include <vrvGraphics/DtFont.h>
19 
22 
23 namespace makVrv
24 {
25  class DtTextRenderer;
26  class DtTexturedGlyphRenderer;
27  class DtTextLayoutInterface;
28  struct DtQuadsRenderData;
29  struct DtObserverRenderData;
30 
34  {
35  public:
36 
38  DtTextProxy(DtTextRenderer* parent);
39 
41  DtTextProxy* clone(DtTextRenderer* parent) const;
42 
44  virtual ~DtTextProxy();
45 
46  public:
47 
49  void setAlignment(DtFontInterface::TextAlignment alignment);
50 
52  DtFontInterface::TextAlignment alignment() const { return myAlignment; };
53 
55  void setParent(DtTextRenderer*);
56 
58  void setPosition(float x, float y, float z, float w = 0);
59 
61  const float* position() const;
62 
68  void setMaximumWorldHeight(double worldHeightInMeters);
69 
71  double maximumWorldHeight() const;
72 
78  void setMaximumWorldWidth(double worldWidthInMeters);
79 
81  double maximumWorldWidth() const;
82 
88  void setIsHiddenWhenExceedingMaximumWorldDimensions(bool);
89 
94  bool isHiddenWhenExceedingMaximumWorldDimensions() const;
95 
98  void setRotation(float angle);
99 
102  float rotation() const;
103 
105  void setColor(float r, float g, float b, float a);
106 
108  const float* color() const;
109 
112  void setString(const DtUnicode& str);
113 
115  const DtUnicode& string() const;
116 
118  void setFont(DtFontInterface* font);
119 
121  std::vector<double> fontConfigurationMinimumAltitudes() const;
122 
124  void setAltitudeSpecificFonts(const DtAltitudeBasedConfigurationCollection&);
125 
128  void clearAltitudeSpecificFonts();
129 
141  void setIsForcedAltitudeBasedConfigurationEnabled(bool enabled);
142 
146  bool isForcedAltitudeBasedConfigurationEnabled() const;
147 
151  void setBaseAltitudeToUseForForcedAltitudeBasedConfigurations(double minimumAltitudeForUse);
152 
162  DtFontInterface* font(double altitude = std::numeric_limits<double>::min()) const;
163 
173  DtBoundingBox calculateBoundingBox(double cameraAltitude = std::numeric_limits<double>::min(),
174  unsigned int pos = 0, int len = -1, const DtPen& pen = DtPen()) const;
175 
177  void setBounds(const DtBoundingBox& box);
178 
188  const DtBoundingBox& bounds(double cameraAltitude) const;
189 
192  void setBoundsByMinimumAltitude(const DtBoundingBox& box, double minimumAltitudeForUse);
193 
195  void setGroup(unsigned int group);
196 
200  void setLodOutAltitude(double lodOutAltitude);
201 
203  double lodOutAltitude() const;
204 
207  void setIsLodOutAltitudeEnabled(bool isLodOutAltitudeEnabled);
208 
210  bool isLodOutAltitudeEnabled() const;
211 
217  void setIsRotationInScreenSpace(bool isRotationInScreenSpace);
218 
220  bool isRotationInScreenSpace() const;
221 
223  unsigned int group() const;
224 
226  virtual void renderText(DtTexturedGlyphRenderer*, DtFontInterface* font, const DtObserverRenderData& channelRenderData
227  , int proxyIndex, DtQuadsRenderData* renderData) const;
228 
229  protected:
230 
232  int computeCollectionIndexFromAltitude(
233  const DtAltitudeBasedConfigurationCollection& collection, const double altitude) const;
234 
236 
237  float myRotation;
238  float myPosition[4];
239  float myColor[4];
240  unsigned int myGroup;
241 
245 
247 
249 
252 
256 
259 
260  void makeOrChangeTextLayout(const DtUnicode& str);
261  };
262 }
Generic base class for text layout renderers.
Definition: DtTextLayoutInterface.h:26
DtTextLayoutInterface * myTextLayout
Definition: DtTextProxy.h:246
bool myIsLodOutAltitudeEnabled
Definition: DtTextProxy.h:250
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
bool myIsForcedAltitudeBasedConfigurationEnabled
Definition: DtTextProxy.h:257
double myAltitudeToUseForForcedAltitudeBasedConfiguration
Definition: DtTextProxy.h:258
bool myIsRotationInScreenSpace
Definition: DtTextProxy.h:248
TextAlignment
Definition: DtFontInterface.h:26
A glyph renderer which renders the texture associated with a glyph.
Definition: DtTexturedGlyphRenderer.h:28
A class for controlling text owned by the TextRenderer.
Definition: DtTextProxy.h:33
DtTextRenderer * myParent
Definition: DtTextProxy.h:235
Contains makVrv::DtAltitudeBasedConfiguration class.
A class for rendering text object.
Definition: DtTextRenderer.h:58
DtFontInterface::TextAlignment alignment() const
Returns alignment.
Definition: DtTextProxy.h:52
#define DT_DLL_VRVGRAPHICS
Contains DLL export macros.
Definition: vrvGraphics.h:19
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
DtAltitudeBasedBoundingBoxConfigurationCollection myAltitudeBasedBounds
Definition: DtTextProxy.h:244
A class for controlling text owned by the TextRenderer.
Definition: DtTextProxyInterface.h:30
unsigned int myGroup
Definition: DtTextProxy.h:240
A class with encapsulated a font loaded from disk with a given size.
Definition: DtFontInterface.h:22
double myMaximumWorldHeight
Definition: DtTextProxy.h:255
double myLodOutAltitude
Definition: DtTextProxy.h:251
Contains makVrv::DtGLFontManager class.
float myRotation
Definition: DtTextProxy.h:237
Contains makVrv::DtFontInterface class declaration.
Definition: DtCommonRenderData.h:19
bool myIsHiddenWhenExceedingMaximumWorldWidth
Definition: DtTextProxy.h:253
A pen object with parameters on how to draw text.
Definition: DtBoundingBox.h:80
DtUnicode myString
Definition: DtTextProxy.h:243
Contains makVrv::DtAltitudeBasedBoundingBoxConfiguration class.
std::vector< DtAltitudeBasedBoundingBoxConfiguration > DtAltitudeBasedBoundingBoxConfigurationCollection
A collection of altitude-based bounding boxes for a text proxy.
Definition: DtAltitudeBasedBoundingBoxConfiguration.h:38
Contains makVrv::DtFont class.
Contains makVrv::DtTextProxyInterface class declaration.
double myMaximumWorldWidth
Definition: DtTextProxy.h:254
Definition: DtCommonRenderData.h:32
DtFontInterface::TextAlignment myAlignment
Definition: DtTextProxy.h:242
std::vector< DtAltitudeBasedConfiguration > DtAltitudeBasedConfigurationCollection
A collection of altitude-based configurations for a text proxy.
Definition: DtAltitudeBasedConfiguration.h:42
A simple bounding box.
Definition: DtBoundingBox.h:101

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)