VR-Forces 5.0.3 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) 2022 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 #include <vrvCore/DtWidget.h>
16 
17 #include <boost/signals/connection.hpp>
18 #include <boost/unordered_map.hpp>
19 
20 #include <osg/Texture>
21 #include <osg/ref_ptr>
22 #include <osg/Vec4>
23 
24 #include <vector>
25 
26 namespace makVrv
27 {
28 
29  class DtDe;
30  class DtQuad;
31  class DtAttribute;
32  class DtBaseOutlineAttribute;
33 
38  {
39  public:
40 
42  DtAttributeLayout( DtDe& de );
43 
45  virtual ~DtAttributeLayout();
46 
48  virtual void setDimensions( unsigned int rows, unsigned int cols );
49 
51  virtual void getDimensions( unsigned int& rowsOut, unsigned int& colsOut );
52 
57  virtual void setAttribute(
58  unsigned int row, unsigned int col, DtAttribute* attribute );
59 
61  virtual DtAttribute* findAttribute( unsigned int row, unsigned int col );
62 
64  virtual void setBottomLeftCorner( double x, double y );
65 
67  virtual void setWorldPosition( float x, float y, float z, float w );
68 
70  virtual void setBackgroundColor( float r, float g, float b, float a );
71 
73  virtual void setBackgroundImage( const std::string& filename );
74 
76  virtual void setCellPadding( double colPadding, double rowPadding );
77 
79  virtual void updateCellSizes();
80 
82  virtual void setVisible( bool visible );
83 
85  virtual void setColor( float r, float g, float b, float a );
86 
89  virtual void setHorizontalCenter( bool center );
90 
93  virtual void setVerticalCenter( bool center );
94 
96  virtual void setOverlay( unsigned int overlayId );
97 
99  virtual void setOrderGroup( unsigned int group );
100  virtual unsigned int orderGroup() const;
101 
103  virtual void setBackgroundOrderGroup( unsigned int groupId );
104 
106  virtual void setWidth( float width );
107 
109  virtual void setBackgroundEnabled( bool enabled );
110 
112  virtual void setOutlineWidth( float width );
113 
115  virtual void setOutlineEnabled( bool enabled );
116 
118  virtual void setShadowText( bool enabled );
119 
124  virtual void setBackgroundLodOutAltitude(double lodOutAltitude);
125 
129  virtual void setBackgroundIsLodOutAltitudeEnabled(bool isLodOutAltitudeEnabled);
130 
131  protected:
132 
134 
135  typedef std::vector<DtAttribute*> Attributes;
136  typedef std::vector<Attributes> AttributeGrid;
137 
140 
143 
144  float myWorldX;
145  float myWorldY;
146  float myWorldZ;
147  float myWorldW;
148 
149  double myOffsetX;
150  double myOffsetY;
151 
153  double myXDim;
154 
156  double myYDim;
157 
158  double myRowPadding;
160 
163 
164  bool myVisible;
166 
168 
169  unsigned int myOverlay;
170  unsigned int myOverlayGroup;
171  unsigned int myOverlayTextGroup;
172 
174  osg::Vec4 myBackgroundColor;
176 
178 
181  {
182  unsigned int row;
183  unsigned int col;
184  boost::signalslib::connection resizeConnection;
185  };
186 
188  typedef boost::unordered_map<DtAttribute*, AttributeInfo> AttributeInfoMap;
190 
192  virtual void slot_attributeSizeChanged(
193  DtAttribute* attribute, double xSize, double ySize);
194 
197  virtual void resizeLayout();
198 
201  virtual void redimensionLayout();
202 
204  virtual void resizeRowsAndColumns();
205 
206  std::vector<double> myColSizes;
207  std::vector<double> myRowSizes;
208 
209  private:
210 
213  void createBackground();
214 
219  void eraseAttribute(DtAttribute* attribute);
220 
221  };
222 
223 }
DtBaseOutlineAttribute * myOutline
Definition: DtAttributeLayout.h:162
bool myVisible
Definition: DtAttributeLayout.h:164
bool myHorizontalCenter
Definition: DtAttributeLayout.h:141
float myWorldX
Definition: DtAttributeLayout.h:144
unsigned int myOverlayTextGroup
Definition: DtAttributeLayout.h:171
bool myOutlineEnabled
Definition: DtAttributeLayout.h:165
osg::Vec4 myBackgroundColor
Definition: DtAttributeLayout.h:174
double myOffsetX
Definition: DtAttributeLayout.h:149
Contains the makVrv::DtBoundingBox class declaration.
double myOffsetY
Definition: DtAttributeLayout.h:150
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
double myXDim
Layout dimension on X axis.
Definition: DtAttributeLayout.h:153
boost::unordered_map< DtAttribute *, AttributeInfo > AttributeInfoMap
A map from attribute to its location in the layout.
Definition: DtAttributeLayout.h:188
boost::signalslib::connection resizeConnection
Definition: DtAttributeLayout.h:184
float myOutlineWidth
Definition: DtAttributeLayout.h:167
DtQuad * myBackground
Definition: DtAttributeLayout.h:161
std::vector< Attributes > AttributeGrid
Definition: DtAttributeLayout.h:136
bool myShadowTextFlag
Definition: DtAttributeLayout.h:177
The attribute layout tells DtAttributes where to draw.
Definition: DtBaseOutlineAttribute.h:37
The attribute layout tells DtAttributes where to draw.
Definition: DtAttribute.h:21
Contains makVrv::DtWidget class.
float myWorldY
Definition: DtAttributeLayout.h:145
The attribute layout tells DtAttributes where to draw using a grid type layout.
Definition: DtAttributeLayout.h:37
Data associated with an attribute in the layout.
Definition: DtAttributeLayout.h:180
float myWorldW
Definition: DtAttributeLayout.h:147
unsigned int myOverlay
Definition: DtAttributeLayout.h:169
DtBoundingBox myBoundingBox
Definition: DtAttributeLayout.h:175
bool myVerticalCenter
Definition: DtAttributeLayout.h:142
std::vector< double > myRowSizes
Definition: DtAttributeLayout.h:207
A single 2D quadrilateral. None of this class&#39;s member functions are virtual because: ...
Definition: DtQuad.h:28
double myRowPadding
Definition: DtAttributeLayout.h:158
Base class to provide boost signal/slot management.
AttributeInfoMap myAttributeInfoMap
Definition: DtAttributeLayout.h:189
unsigned int myOverlayGroup
Definition: DtAttributeLayout.h:170
double myYDim
Layout dimension on Y axis.
Definition: DtAttributeLayout.h:156
unsigned int col
Definition: DtAttributeLayout.h:183
Contains DLL export macros.
DtDe & myDe
Definition: DtAttributeLayout.h:133
double myColumnPadding
Definition: DtAttributeLayout.h:159
osg::ref_ptr< osg::Texture > myBackgroundTexture
Definition: DtAttributeLayout.h:173
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:70
std::vector< double > myColSizes
Definition: DtAttributeLayout.h:206
AttributeGrid myAttributeGrid
The 2d grid of attributes to manage.
Definition: DtAttributeLayout.h:139
float myWorldZ
Definition: DtAttributeLayout.h:146
unsigned int row
Definition: DtAttributeLayout.h:182
std::vector< DtAttribute * > Attributes
Definition: DtAttributeLayout.h:135
A simple bounding box.
Definition: DtBoundingBox.h:101

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)