VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtAttributeLayout.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2024 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 
14 #include <vrvCore/DtWidget.h>
15 #include <vrvCore/DtBoundingBox.h>
17 
18 #include <vrvMath/DtVector4.h>
19 
21 
22 #include <boost/signals2/connection.hpp>
23 
24 #include <osg/Texture>
25 #include <osg/ref_ptr>
26 
27 #include <vector>
28 #include <unordered_map>
29 
30 namespace makVrv
31 {
32 
33  class DtDe;
34  class DtQuadProxyInterface;
35  class DtAttribute;
36  class DtBaseOutlineAttribute;
37  class DtOsgTextureWrapper;
38 
43  {
44 
45  public:
46 
48 
49  public:
50 
52  DtAttributeLayout( DtDe& de );
53 
55  virtual ~DtAttributeLayout();
56 
57  public:
58 
60  virtual void setDimensions( unsigned int rows, unsigned int cols );
61 
63  virtual void getDimensions( unsigned int& rowsOut, unsigned int& colsOut );
64 
69  virtual void setAttribute(
70  unsigned int row, unsigned int col, DtAttribute* attribute );
71 
73  virtual DtAttribute* findAttribute( unsigned int row, unsigned int col );
74 
77  virtual void setOriginOffset( double x, double y );
78 
81  virtual void setOriginPlacementPolicy(DtOriginPlacementPolicy originPolicy);
82 
90  virtual void setHorizontalCenter(bool center);
91 
99  virtual void setVerticalCenter(bool center);
100 
102  virtual void setWorldPosition( float x, float y, float z, float w );
103 
105  virtual void setBackgroundColor( float r, float g, float b, float a );
106 
108  virtual void setBackgroundImage( const std::string& filename );
109 
111  virtual void setCellPadding( double colPadding, double rowPadding );
112 
114  virtual void updateCellSizes();
115 
117  virtual void setVisible( bool visible );
118 
120  virtual void setColor( float r, float g, float b, float a );
121 
123  virtual void setOverlay( unsigned int overlayId );
124 
126  virtual void setOrderGroup( unsigned int group );
127  virtual unsigned int orderGroup() const;
128 
130  virtual void setBackgroundOrderGroup( unsigned int groupId );
131 
133  virtual void setWidth( float width );
134 
136  virtual void setBackgroundEnabled( bool enabled );
137 
139  virtual void setOutlineWidth( float width );
140 
142  virtual void setOutlineEnabled( bool enabled );
143 
145  virtual void setShadowText( bool enabled );
146 
151  virtual void setBackgroundLodOutAltitude(double lodOutAltitude);
152 
156  virtual void setBackgroundIsLodOutAltitudeEnabled(bool isLodOutAltitudeEnabled);
157 
158  protected:
159 
161  virtual void updateOriginPlacementPolicyBasedOnHorizontalAndVerticalCenterProperties();
162 
163  protected:
164 
166 
167  typedef std::vector<DtAttribute*> Attributes;
168  typedef std::vector<Attributes> AttributeGrid;
169 
172 
175 
176  float myWorldX;
177  float myWorldY;
178  float myWorldZ;
179  float myWorldW;
180 
182 
183  double myOffsetX;
184  double myOffsetY;
185 
187  double myXDim;
188 
190  double myYDim;
191 
192  double myRowPadding;
194 
197 
198  bool myVisible;
200 
202 
203  unsigned int myOverlay;
204  unsigned int myOverlayGroup;
205  unsigned int myOverlayTextGroup;
206 
210 
212 
215  {
216  unsigned int row;
217  unsigned int col;
218  boost::signalslib::connection resizeConnection;
219  };
220 
222  typedef std::unordered_map<DtAttribute*, AttributeInfo> AttributeInfoMap;
224 
226  virtual void slot_attributeSizeChanged(
227  DtAttribute* attribute, double xSize, double ySize);
228 
231  virtual void resizeLayout();
232 
235  virtual void redimensionLayout();
236 
238  virtual void resizeRowsAndColumns();
239 
240  std::vector<double> myColSizes;
241  std::vector<double> myRowSizes;
242 
243  private:
244 
247  void createBackground();
248 
253  void eraseAttribute(DtAttribute* attribute);
254 
255  };
256 
257 }
DtBaseOutlineAttribute * myOutline
Definition: DtAttributeLayout.h:196
DtQuadProxyInterface * myBackground
Definition: DtAttributeLayout.h:195
bool myVisible
Definition: DtAttributeLayout.h:198
bool myHorizontalCenter
Definition: DtAttributeLayout.h:173
float myWorldX
Definition: DtAttributeLayout.h:176
unsigned int myOverlayTextGroup
Definition: DtAttributeLayout.h:205
bool myOutlineEnabled
Definition: DtAttributeLayout.h:199
double myOffsetX
Definition: DtAttributeLayout.h:183
Contains the makVrv::DtBoundingBox class declaration.
double myOffsetY
Definition: DtAttributeLayout.h:184
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
double myXDim
Layout dimension on X axis.
Definition: DtAttributeLayout.h:187
boost::signalslib::connection resizeConnection
Definition: DtAttributeLayout.h:218
float myOutlineWidth
Definition: DtAttributeLayout.h:201
4 dimensional vector
std::vector< Attributes > AttributeGrid
Definition: DtAttributeLayout.h:168
bool myShadowTextFlag
Definition: DtAttributeLayout.h:211
The attribute layout tells DtAttributes where to draw.
Definition: DtBaseOutlineAttribute.h:36
The attribute layout tells DtAttributes where to draw.
Definition: DtAttribute.h:21
Contains the DtAttributeGroupWidget class declaration.
Contains makVrv::DtWidget class.
float myWorldY
Definition: DtAttributeLayout.h:177
The attribute layout tells DtAttributes where to draw using a grid type layout.
Definition: DtAttributeLayout.h:42
Data associated with an attribute in the layout.
Definition: DtAttributeLayout.h:214
DtOriginPlacementPolicy
Policy that determines where the origin of the widget is.
Definition: DtAttributeGroupWidget.h:24
A single 2D quadrilateral.
Definition: DtQuadProxyInterface.h:21
float myWorldW
Definition: DtAttributeLayout.h:179
unsigned int myOverlay
Definition: DtAttributeLayout.h:203
DtBoundingBox myBoundingBox
Definition: DtAttributeLayout.h:209
DtOriginPlacementPolicy myOriginPlacementPolicy
Definition: DtAttributeLayout.h:181
Interface for a texture. Used to pass in a texture to vrvGraphics.
Definition: DtOsgTextureWrapper.h:24
bool myVerticalCenter
Definition: DtAttributeLayout.h:174
std::vector< double > myRowSizes
Definition: DtAttributeLayout.h:241
std::unordered_map< DtAttribute *, AttributeInfo > AttributeInfoMap
A map from attribute to its location in the layout.
Definition: DtAttributeLayout.h:222
double myRowPadding
Definition: DtAttributeLayout.h:192
Base class to provide boost signal/slot management.
AttributeInfoMap myAttributeInfoMap
Definition: DtAttributeLayout.h:223
unsigned int myOverlayGroup
Definition: DtAttributeLayout.h:204
double myYDim
Layout dimension on Y axis.
Definition: DtAttributeLayout.h:190
unsigned int col
Definition: DtAttributeLayout.h:217
Contains DLL export macros.
DtDe & myDe
Definition: DtAttributeLayout.h:165
double myColumnPadding
Definition: DtAttributeLayout.h:193
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
std::vector< double > myColSizes
Definition: DtAttributeLayout.h:240
AttributeGrid myAttributeGrid
The 2d grid of attributes to manage.
Definition: DtAttributeLayout.h:171
DtVector4< float > myBackgroundColor
Definition: DtAttributeLayout.h:208
float myWorldZ
Definition: DtAttributeLayout.h:178
unsigned int row
Definition: DtAttributeLayout.h:216
std::vector< DtAttribute * > Attributes
Definition: DtAttributeLayout.h:167
A simple bounding box.
Definition: DtBoundingBox.h:101
DtOsgTextureWrapper * myBackgroundTexture
Definition: DtAttributeLayout.h:207

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)