VR-Forces 4.8 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) 2012 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 
102  virtual void setBackgroundOrderGroup( unsigned int groupId );
103 
105  virtual void setWidth( float width );
106 
108  virtual void setBackgroundEnabled( bool enabled );
109 
111  virtual void setOutlineEnabled( bool enabled );
112 
114  virtual void setShadowText( bool enabled );
115 
116  protected:
117 
119 
120  typedef std::vector<DtAttribute*> Attributes;
121  typedef std::vector<Attributes> AttributeGrid;
122 
125 
128 
129  float myWorldX;
130  float myWorldY;
131  float myWorldZ;
132  float myWorldW;
133 
134  double myOffsetX;
135  double myOffsetY;
136 
138  double myXDim;
139 
141  double myYDim;
142 
143  double myRowPadding;
145 
148 
149  bool myVisible;
151 
152  unsigned int myOverlay;
153  unsigned int myOverlayGroup;
154  unsigned int myOverlayTextGroup;
155 
157  osg::Vec4 myBackgroundColor;
159 
161 
164  {
165  unsigned int row;
166  unsigned int col;
167  boost::signalslib::connection resizeConnection;
168  };
169 
171  typedef boost::unordered_map<DtAttribute*, AttributeInfo> AttributeInfoMap;
173 
175  virtual void slot_attributeSizeChanged(
176  DtAttribute* attribute, double xSize, double ySize);
177 
180  virtual void resizeLayout();
181 
184  virtual void redimensionLayout();
185 
187  virtual void resizeRowsAndColumns();
188 
189  std::vector<double> myColSizes;
190  std::vector<double> myRowSizes;
191 
192  private:
193 
196  void createBackground();
197 
202  void eraseAttribute(DtAttribute* attribute);
203 
204  };
205 
206 }
bool myVisible
Definition: DtAttributeLayout.h:149
bool myHorizontalCenter
Definition: DtAttributeLayout.h:126
float myWorldX
Definition: DtAttributeLayout.h:129
unsigned int myOverlayTextGroup
Definition: DtAttributeLayout.h:154
bool myOutlineEnabled
Definition: DtAttributeLayout.h:150
osg::Vec4 myBackgroundColor
Definition: DtAttributeLayout.h:157
double myOffsetX
Definition: DtAttributeLayout.h:134
Contains the makVrv::DtBoundingBox class declaration.
double myOffsetY
Definition: DtAttributeLayout.h:135
Declares the DtBaseOutlineAttribute class declaration.
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
double myXDim
Layout dimension on X axis.
Definition: DtAttributeLayout.h:138
boost::unordered_map< DtAttribute *, AttributeInfo > AttributeInfoMap
A map from attribute to its location in the layout.
Definition: DtAttributeLayout.h:171
boost::signalslib::connection resizeConnection
Definition: DtAttributeLayout.h:167
DtQuad * myBackground
Definition: DtAttributeLayout.h:146
std::vector< Attributes > AttributeGrid
Definition: DtAttributeLayout.h:121
bool myShadowTextFlag
Definition: DtAttributeLayout.h:160
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:147
Contains makVrv::DtWidget class.
float myWorldY
Definition: DtAttributeLayout.h:130
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:163
float myWorldW
Definition: DtAttributeLayout.h:132
unsigned int myOverlay
Definition: DtAttributeLayout.h:152
DtBoundingBox myBoundingBox
Definition: DtAttributeLayout.h:158
bool myVerticalCenter
Definition: DtAttributeLayout.h:127
std::vector< double > myRowSizes
Definition: DtAttributeLayout.h:190
A single 2D quadrilateral.
Definition: DtQuad.h:24
double myRowPadding
Definition: DtAttributeLayout.h:143
Base class to provide boost signal/slot management.
AttributeInfoMap myAttributeInfoMap
Definition: DtAttributeLayout.h:172
unsigned int myOverlayGroup
Definition: DtAttributeLayout.h:153
double myYDim
Layout dimension on Y axis.
Definition: DtAttributeLayout.h:141
unsigned int col
Definition: DtAttributeLayout.h:166
Contains DLL export macros.
DtDe & myDe
Definition: DtAttributeLayout.h:118
double myColumnPadding
Definition: DtAttributeLayout.h:144
osg::ref_ptr< osg::Texture > myBackgroundTexture
Definition: DtAttributeLayout.h:156
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
std::vector< double > myColSizes
Definition: DtAttributeLayout.h:189
AttributeGrid myAttributeGrid
The 2d grid of attributes to manage.
Definition: DtAttributeLayout.h:124
float myWorldZ
Definition: DtAttributeLayout.h:131
unsigned int row
Definition: DtAttributeLayout.h:165
std::vector< DtAttribute * > Attributes
Definition: DtAttributeLayout.h:120
A simple bounding box.
Definition: DtBoundingBox.h:101

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)