VR-Forces 4.10 Class Documentation
 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) 2020 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 #include <vrvCore/DtWidget.h>
17 
18 #include <boost/signals/connection.hpp>
19 #include <boost/unordered_map.hpp>
20 
21 #include <osg/Texture>
22 #include <osg/ref_ptr>
23 #include <osg/Vec4>
24 
25 #include <vector>
26 
27 namespace makVrv
28 {
29 
30  class DtDe;
31  class DtQuad;
32  class DtAttribute;
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 
120  protected:
121 
123 
124  typedef std::vector<DtAttribute*> Attributes;
125  typedef std::vector<Attributes> AttributeGrid;
126 
129 
132 
133  float myWorldX;
134  float myWorldY;
135  float myWorldZ;
136  float myWorldW;
137 
138  double myOffsetX;
139  double myOffsetY;
140 
142  double myXDim;
143 
145  double myYDim;
146 
147  double myRowPadding;
149 
152 
153  bool myVisible;
155 
157 
158  unsigned int myOverlay;
159  unsigned int myOverlayGroup;
160  unsigned int myOverlayTextGroup;
161 
163  osg::Vec4 myBackgroundColor;
165 
167 
170  {
171  unsigned int row;
172  unsigned int col;
173  boost::signalslib::connection resizeConnection;
174  };
175 
177  typedef boost::unordered_map<DtAttribute*, AttributeInfo> AttributeInfoMap;
179 
181  virtual void slot_attributeSizeChanged(
182  DtAttribute* attribute, double xSize, double ySize);
183 
186  virtual void resizeLayout();
187 
190  virtual void redimensionLayout();
191 
193  virtual void resizeRowsAndColumns();
194 
195  std::vector<double> myColSizes;
196  std::vector<double> myRowSizes;
197 
198  private:
199 
202  void createBackground();
203 
208  void eraseAttribute(DtAttribute* attribute);
209 
210  };
211 
212 }
bool myVisible
Definition: DtAttributeLayout.h:153
bool myHorizontalCenter
Definition: DtAttributeLayout.h:130
float myWorldX
Definition: DtAttributeLayout.h:133
unsigned int myOverlayTextGroup
Definition: DtAttributeLayout.h:160
bool myOutlineEnabled
Definition: DtAttributeLayout.h:154
osg::Vec4 myBackgroundColor
Definition: DtAttributeLayout.h:163
double myOffsetX
Definition: DtAttributeLayout.h:138
Contains the makVrv::DtBoundingBox class declaration.
double myOffsetY
Definition: DtAttributeLayout.h:139
Declares the DtBaseOutlineAttribute class declaration.
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
double myXDim
Layout dimension on X axis.
Definition: DtAttributeLayout.h:142
boost::unordered_map< DtAttribute *, AttributeInfo > AttributeInfoMap
A map from attribute to its location in the layout.
Definition: DtAttributeLayout.h:177
boost::signalslib::connection resizeConnection
Definition: DtAttributeLayout.h:173
float myOutlineWidth
Definition: DtAttributeLayout.h:156
DtQuad * myBackground
Definition: DtAttributeLayout.h:150
std::vector< Attributes > AttributeGrid
Definition: DtAttributeLayout.h:125
bool myShadowTextFlag
Definition: DtAttributeLayout.h:166
The attribute layout tells DtAttributes where to draw.
Definition: DtBaseOutlineAttribute.h:25
The attribute layout tells DtAttributes where to draw.
Definition: DtAttribute.h:21
DtBaseOutlineAttribute myOutline
Definition: DtAttributeLayout.h:151
Contains makVrv::DtWidget class.
float myWorldY
Definition: DtAttributeLayout.h:134
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:169
float myWorldW
Definition: DtAttributeLayout.h:136
unsigned int myOverlay
Definition: DtAttributeLayout.h:158
DtBoundingBox myBoundingBox
Definition: DtAttributeLayout.h:164
bool myVerticalCenter
Definition: DtAttributeLayout.h:131
std::vector< double > myRowSizes
Definition: DtAttributeLayout.h:196
A single 2D quadrilateral.
Definition: DtQuad.h:24
double myRowPadding
Definition: DtAttributeLayout.h:147
Base class to provide boost signal/slot management.
AttributeInfoMap myAttributeInfoMap
Definition: DtAttributeLayout.h:178
unsigned int myOverlayGroup
Definition: DtAttributeLayout.h:159
double myYDim
Layout dimension on Y axis.
Definition: DtAttributeLayout.h:145
unsigned int col
Definition: DtAttributeLayout.h:172
Contains DLL export macros.
DtDe & myDe
Definition: DtAttributeLayout.h:122
double myColumnPadding
Definition: DtAttributeLayout.h:148
osg::ref_ptr< osg::Texture > myBackgroundTexture
Definition: DtAttributeLayout.h:162
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
std::vector< double > myColSizes
Definition: DtAttributeLayout.h:195
AttributeGrid myAttributeGrid
The 2d grid of attributes to manage.
Definition: DtAttributeLayout.h:128
float myWorldZ
Definition: DtAttributeLayout.h:135
unsigned int row
Definition: DtAttributeLayout.h:171
std::vector< DtAttribute * > Attributes
Definition: DtAttributeLayout.h:124
A simple bounding box.
Definition: DtBoundingBox.h:101

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)