#include <OSGQMatrixFieldValueLabel.h>
Inheritance diagram for osg::QMatrixFieldValueLabel< MatrixTypeT >:

Public Types | |
| typedef MatrixTypeT | MatrixType |
| typedef MatrixTypeT::ValueType | ValueType |
Public Member Functions | |
| QMatrixFieldValueLabel (QFieldViewBase *pView, UInt32 uiIndex) | |
| virtual | ~QMatrixFieldValueLabel (void) |
| virtual void | paint (QPainter *pPainter, const QColorGroup &colGrp, const QRect &rect) |
| virtual QSize | sizeHint (void) |
| virtual QSize | minimumSizeHint (void) |
| virtual void | valueChanged (void) |
| void | setIndex (UInt32 uiIndex) |
| UInt32 | getIndex (void) const |
Static Public Member Functions | |
| static QFieldValueLabelBase * | create (QFieldViewBase *pView, UInt32 uiIndex) |
Protected Member Functions | |
| const QString & | getCachedValue (UInt32 uiRow, UInt32 uiCol) |
| const QSize & | getCachedSize (void) |
| QFieldViewBase * | getFieldView (void) |
| const QFieldViewBase * | getFieldView (void) const |
| FieldContainerPtr & | getFieldContainer (void) |
| const FieldContainerPtr & | getFieldContainer (void) const |
| UInt32 | getFieldId (void) const |
| UInt32 | getAspect (void) const |
| Field * | getFieldPtr (void) |
| const Field * | getFieldPtr (void) const |
Private Types | |
| typedef QFieldValueLabelBase | Inherited |
Private Member Functions | |
| void | updateCache (void) |
Private Attributes | |
| QString | _strCachedValues [16] |
| QSize | _cachedSize |
| bool | _bCacheValid |
Definition at line 54 of file OSGQMatrixFieldValueLabel.h.
|
|||||
|
Definition at line 58 of file OSGQMatrixFieldValueLabel.h. |
|
|||||
|
Definition at line 59 of file OSGQMatrixFieldValueLabel.h. |
|
|||||
|
Definition at line 81 of file OSGQMatrixFieldValueLabel.h. |
|
||||||||||||||||
|
Definition at line 57 of file OSGQMatrixFieldValueLabel.inl. 00059 : Inherited (pView, uiIndex), 00060 _cachedSize ( ), 00061 _bCacheValid(false ) 00062 { 00063 }
|
|
||||||||||
|
Definition at line 66 of file OSGQMatrixFieldValueLabel.inl.
|
|
||||||||||||||||
|
Definition at line 72 of file OSGQMatrixFieldValueLabel.inl.
|
|
||||||||||||||||||||
|
Implements osg::QFieldValueLabelBase. Definition at line 80 of file OSGQMatrixFieldValueLabel.inl. References osg::QMatrixFieldValueLabel< MatrixTypeT >::getCachedValue(). 00082 { 00083 QRect drawRect(0, 0, rect.width()/4, rect.height()/4); 00084 00085 pPainter->save(); 00086 00087 pPainter->setBrush(colGrp.base()); 00088 00089 pPainter->translate(rect.x(), rect.y()); 00090 00091 for(UInt32 row = 0; row < 4; ++row) 00092 { 00093 pPainter->save(); 00094 00095 for(UInt32 col = 0; col < 4; ++col) 00096 { 00097 pPainter->setPen (colGrp.background()); 00098 pPainter->drawRect(drawRect ); 00099 pPainter->setPen (colGrp.text() ); 00100 00101 pPainter->drawText (drawRect, AlignVCenter, 00102 getCachedValue(row, col)); 00103 pPainter->translate(rect.width()/4, 0 ); 00104 } 00105 00106 pPainter->restore ( ); 00107 pPainter->translate(0, rect.height() / 4); 00108 } 00109 00110 pPainter->restore(); 00111 }
|
|
||||||||||
|
Implements osg::QFieldValueLabelBase. Definition at line 115 of file OSGQMatrixFieldValueLabel.inl. References osg::QMatrixFieldValueLabel< MatrixTypeT >::getCachedSize(). 00116 { 00117 return QSize(getCachedSize().width() + 8, 00118 getCachedSize().height() + 8 ); 00119 }
|
|
||||||||||
|
Implements osg::QFieldValueLabelBase. Definition at line 123 of file OSGQMatrixFieldValueLabel.inl. References osg::QMatrixFieldValueLabel< MatrixTypeT >::getCachedSize(). 00124 { 00125 return getCachedSize(); 00126 }
|
|
||||||||||
|
Implements osg::QFieldValueLabelBase. Definition at line 130 of file OSGQMatrixFieldValueLabel.inl. References osg::QMatrixFieldValueLabel< MatrixTypeT >::_bCacheValid. 00131 { 00132 _bCacheValid = false; 00133 }
|
|
||||||||||||||||
|
Definition at line 137 of file OSGQMatrixFieldValueLabel.inl. References osg::QMatrixFieldValueLabel< MatrixTypeT >::_strCachedValues, and osg::QMatrixFieldValueLabel< MatrixTypeT >::updateCache(). Referenced by osg::QMatrixFieldValueLabel< MatrixTypeT >::paint(). 00138 { 00139 updateCache(); 00140 00141 return _strCachedValues[4 * uiRow + uiCol]; 00142 }
|
|
||||||||||
|
Definition at line 146 of file OSGQMatrixFieldValueLabel.inl. References osg::QMatrixFieldValueLabel< MatrixTypeT >::_cachedSize, and osg::QMatrixFieldValueLabel< MatrixTypeT >::updateCache(). Referenced by osg::QMatrixFieldValueLabel< MatrixTypeT >::minimumSizeHint(), and osg::QMatrixFieldValueLabel< MatrixTypeT >::sizeHint(). 00147 { 00148 updateCache(); 00149 00150 return _cachedSize; 00151 }
|
|
||||||||||
|
Definition at line 155 of file OSGQMatrixFieldValueLabel.inl. References osg::QMatrixFieldValueLabel< MatrixTypeT >::_bCacheValid, osg::QMatrixFieldValueLabel< MatrixTypeT >::_cachedSize, osg::QMatrixFieldValueLabel< MatrixTypeT >::_strCachedValues, osg::endLog(), osg::Field::getCardinality(), osg::QFieldValueLabelBase::getFieldPtr(), osg::QFieldValueLabelBase::getFieldView(), osg::QFieldValueLabelBase::getIndex(), osg::Field::getSize(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::osgMax(), osg::FieldType::SINGLE_FIELD, and SWARNING. Referenced by osg::QMatrixFieldValueLabel< MatrixTypeT >::getCachedSize(), and osg::QMatrixFieldValueLabel< MatrixTypeT >::getCachedValue(). 00156 { 00157 typedef TypeTraits<ValueType> TTraits; 00158 00159 if(_bCacheValid) 00160 return; 00161 00162 if(getIndex() >= getFieldPtr()->getSize()) 00163 { 00164 SWARNING << "QMatrixFieldValueLabel<>::updateCache(): " 00165 << "getIndex >= getFieldPtr()->getSize()" << endLog; 00166 00167 for(UInt32 i = 0; i < 16; ++i) 00168 { 00169 _strCachedValues[i] = ""; 00170 } 00171 00172 _cachedSize.setWidth (4 * 10 ); 00173 _cachedSize.setHeight(getFieldView()->fontMetrics().height()); 00174 00175 _bCacheValid = true; 00176 00177 return; 00178 } 00179 00180 Int32 widthOfCol [4] = { 0, 0, 0, 0 }; 00181 00182 if(getFieldPtr()->getCardinality() == FieldType::SINGLE_FIELD) 00183 { 00184 SField<MatrixType> *pSF = 00185 dynamic_cast<SField<MatrixType> *>(getFieldPtr()); 00186 00187 for(UInt32 row = 0; row < 4; ++row) 00188 { 00189 for(UInt32 col = 0; col < 4; ++col) 00190 { 00191 _strCachedValues[4 * row + col] = 00192 TTraits::putToString( 00193 pSF->getValue().getValues()[4 * col + row] 00194 ).c_str(); 00195 00196 widthOfCol[col] = osgMax(widthOfCol[col], 00197 getFieldView()->fontMetrics().width( 00198 _strCachedValues[4 * row + col])); 00199 } 00200 } 00201 } 00202 else 00203 { 00204 MField<MatrixType> *pMF = 00205 dynamic_cast<MField<MatrixType> *>(getFieldPtr()); 00206 00207 for(UInt32 row = 0; row < 4; ++row) 00208 { 00209 for(UInt32 col = 0; col < 4; ++col) 00210 { 00211 _strCachedValues[4 * row + col] = 00212 TTraits::putToString( 00213 (*pMF)[getIndex()].getValues()[4 * col + row] 00214 ).c_str(); 00215 00216 widthOfCol[col] = osgMax(widthOfCol[col], 00217 getFieldView()->fontMetrics().width( 00218 _strCachedValues[4 * row + col])); 00219 } 00220 } 00221 } 00222 00223 _cachedSize.setWidth ( widthOfCol[0] + widthOfCol[1] + 00224 widthOfCol[2] + widthOfCol[3] ); 00225 _cachedSize.setHeight(4 * getFieldView()->fontMetrics().height()); 00226 00227 _bCacheValid = true; 00228 }
|
|
|
Definition at line 81 of file OSGQFieldValueLabel.cpp. References osg::QFieldValueLabelBase::_uiIndex, and osg::QFieldValueLabelBase::valueChanged(). Referenced by osg::QMFieldView::acquireLabel(). 00082 { 00083 _uiIndex = uiIndex; 00084 00085 valueChanged(); 00086 }
|
|
|
|
Definition at line 52 of file OSGQFieldValueLabel.inl. References osg::QFieldValueLabelBase::_pView. Referenced by osg::QVectorFieldValueLabel< VectorTypeT >::updateCache(), osg::QPointFieldValueLabel< PointTypeT >::updateCache(), osg::QMatrixFieldValueLabel< MatrixTypeT >::updateCache(), and osg::QGenericFieldValueLabel::updateCache(). 00053 { 00054 return _pView; 00055 }
|
|
|
Definition at line 58 of file OSGQFieldValueLabel.inl. References osg::QFieldValueLabelBase::_pView. 00059 { 00060 return _pView; 00061 }
|
|
|
Definition at line 64 of file OSGQFieldValueLabel.inl. References osg::QFieldValueLabelBase::_pView, and osg::QFieldViewBase::getFieldContainer(). 00065 { 00066 return _pView->getFieldContainer(); 00067 }
|
|
|
Definition at line 70 of file OSGQFieldValueLabel.inl. References osg::QFieldValueLabelBase::_pView, and osg::QFieldViewBase::getFieldContainer(). 00071 { 00072 return _pView->getFieldContainer(); 00073 }
|
|
|
Definition at line 76 of file OSGQFieldValueLabel.inl. References osg::QFieldValueLabelBase::_pView, and osg::QFieldViewBase::getFieldId(). 00077 { 00078 return _pView->getFieldId(); 00079 }
|
|
|
Definition at line 82 of file OSGQFieldValueLabel.inl. References osg::QFieldValueLabelBase::_pView, and osg::QFieldViewBase::getAspect(). 00083 { 00084 return _pView->getAspect(); 00085 }
|
|
|
Definition at line 88 of file OSGQFieldValueLabel.inl. References osg::QFieldValueLabelBase::_pView, and osg::QFieldViewBase::getFieldPtr(). Referenced by osg::QVectorFieldValueLabel< VectorTypeT >::updateCache(), osg::QPointFieldValueLabel< PointTypeT >::updateCache(), osg::QMatrixFieldValueLabel< MatrixTypeT >::updateCache(), and osg::QGenericFieldValueLabel::updateCache(). 00089 { 00090 return _pView->getFieldPtr(); 00091 }
|
|
|
Definition at line 94 of file OSGQFieldValueLabel.inl. References osg::QFieldValueLabelBase::_pView, and osg::QFieldViewBase::getFieldPtr(). 00095 { 00096 return _pView->getFieldPtr(); 00097 }
|
|
|||||
|
Definition at line 85 of file OSGQMatrixFieldValueLabel.h. Referenced by osg::QMatrixFieldValueLabel< MatrixTypeT >::getCachedValue(), and osg::QMatrixFieldValueLabel< MatrixTypeT >::updateCache(). |
|
|||||
|
Definition at line 86 of file OSGQMatrixFieldValueLabel.h. Referenced by osg::QMatrixFieldValueLabel< MatrixTypeT >::getCachedSize(), and osg::QMatrixFieldValueLabel< MatrixTypeT >::updateCache(). |
|
|||||
|
Definition at line 87 of file OSGQMatrixFieldValueLabel.h. Referenced by osg::QMatrixFieldValueLabel< MatrixTypeT >::updateCache(), and osg::QMatrixFieldValueLabel< MatrixTypeT >::valueChanged(). |
1.4.3