// SALOME GUI includes
#include <SUIT_Desktop.h>
#include <QtxColorButton.h>
+#include <QtxDoubleSpinBox.h>
#include <QtxIntSpinBox.h>
// Qt includes
#include <QHBoxLayout>
#include <QGridLayout>
#include <QSpinBox>
+#include <QCheckBox>
#define SPACING 6
#define MARGIN 11
QLabel* TextLabel_Outine = new QLabel( tr( "Outline" ), ButtonGroup1 );
btnOutlineColor = new QtxColorButton( ButtonGroup1 );
+ QLabel* TextLabel_0DElements_Color = new QLabel( tr( "0D elements" ), ButtonGroup1 );
+ btn0DElementsColor = new QtxColorButton( ButtonGroup1 );
+
+ QLabel* TextLabel_0DElements_Size = new QLabel( tr( "Size of 0D elements" ), ButtonGroup1 );
+ SpinBox_0DElements_Size = new QSpinBox( ButtonGroup1 );
+ SpinBox_0DElements_Size->setRange( 1, 10 );
+ SpinBox_0DElements_Size->setSingleStep( 1 );
+ SpinBox_0DElements_Size->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
+ SpinBox_0DElements_Size->setButtonSymbols( QSpinBox::PlusMinus );
+
QLabel* TextLabel_Width = new QLabel( tr( "Width" ), ButtonGroup1 );
SpinBox_Width = new QSpinBox( ButtonGroup1 );
SpinBox_Width->setRange( 0, 5 );
SpinBox_Shrink->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
SpinBox_Shrink->setButtonSymbols( QSpinBox::PlusMinus );
- ButtonGroup1Layout->addWidget( TextLabel_Fill, 0, 0 );
- ButtonGroup1Layout->addWidget( btnFillColor, 0, 1 );
- ButtonGroup1Layout->addWidget( TextLabel_BackFace, 0, 2 );
- ButtonGroup1Layout->addWidget( btnBackFaceColor, 0, 3 );
- ButtonGroup1Layout->addWidget( TextLabel_Outine, 1, 0 );
- ButtonGroup1Layout->addWidget( btnOutlineColor, 1, 1 );
- ButtonGroup1Layout->addWidget( TextLabel_Width, 1, 2 );
- ButtonGroup1Layout->addWidget( SpinBox_Width, 1, 3 );
- ButtonGroup1Layout->addWidget( TextLabel_ShrinkCoeff, 2, 0 );
- ButtonGroup1Layout->addWidget( SpinBox_Shrink, 2, 1, 1, 3 );
+ ButtonGroup1Layout->addWidget( TextLabel_Fill, 0, 0 );
+ ButtonGroup1Layout->addWidget( btnFillColor, 0, 1 );
+ ButtonGroup1Layout->addWidget( TextLabel_BackFace, 0, 2 );
+ ButtonGroup1Layout->addWidget( btnBackFaceColor, 0, 3 );
+ ButtonGroup1Layout->addWidget( TextLabel_Outine, 1, 0 );
+ ButtonGroup1Layout->addWidget( btnOutlineColor, 1, 1 );
+ ButtonGroup1Layout->addWidget( TextLabel_0DElements_Color, 1, 2 );
+ ButtonGroup1Layout->addWidget( btn0DElementsColor, 1, 3 );
+ ButtonGroup1Layout->addWidget( TextLabel_0DElements_Size, 2, 0 );
+ ButtonGroup1Layout->addWidget( SpinBox_0DElements_Size, 2, 1 );
+ ButtonGroup1Layout->addWidget( TextLabel_Width, 3, 0 );
+ ButtonGroup1Layout->addWidget( SpinBox_Width, 3, 1 );
+ ButtonGroup1Layout->addWidget( TextLabel_ShrinkCoeff, 3, 2 );
+ ButtonGroup1Layout->addWidget( SpinBox_Shrink, 3, 3 );
// -------------------------------
QGroupBox* ButtonGroup2 = new QGroupBox( tr( "Nodes" ), this );
ButtonGroup2Layout->addWidget( TextLabel_Nodes_Size );
ButtonGroup2Layout->addWidget( SpinBox_Nodes_Size );
+ // -------------------------------
+ QGroupBox* ButtonGroup3 = new QGroupBox( tr( "Orientation of faces" ), this );
+ QGridLayout* ButtonGroup3Layout = new QGridLayout( ButtonGroup3 );
+ ButtonGroup3Layout->setSpacing( SPACING );
+ ButtonGroup3Layout->setMargin( MARGIN );
+
+ QLabel* TextLabel_Orientation_Color = new QLabel( tr( "Color" ), ButtonGroup3 );
+ btnOrientationColor = new QtxColorButton( ButtonGroup3 );
+
+ QLabel* TextLabel_Orientation_Scale = new QLabel( tr( "Scale" ), ButtonGroup3 );
+ SpinBox_Orientation_Scale = new QtxDoubleSpinBox( ButtonGroup3 );
+ SpinBox_Orientation_Scale->setRange( 0.05, 0.5 );
+ SpinBox_Orientation_Scale->setSingleStep( 0.05 );
+ SpinBox_Orientation_Scale->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
+ SpinBox_Orientation_Scale->setButtonSymbols( QSpinBox::PlusMinus );
+
+ CheckBox_Orientation_3DVectors = new QCheckBox( tr( "3D vectors" ), ButtonGroup3 );
+
+ ButtonGroup3Layout->addWidget( TextLabel_Orientation_Color, 0, 0 );
+ ButtonGroup3Layout->addWidget( btnOrientationColor, 0, 1 );
+ ButtonGroup3Layout->addWidget( TextLabel_Orientation_Scale, 0, 2 );
+ ButtonGroup3Layout->addWidget( SpinBox_Orientation_Scale, 0, 3 );
+ ButtonGroup3Layout->addWidget( CheckBox_Orientation_3DVectors, 1, 0, 1, 4 );
+
// -------------------------------
QGroupBox* GroupButtons = new QGroupBox( this );
QHBoxLayout* GroupButtonsLayout = new QHBoxLayout( GroupButtons );
// -------------------------------
topLayout->addWidget( ButtonGroup1 );
topLayout->addWidget( ButtonGroup2 );
+ topLayout->addWidget( ButtonGroup3 );
topLayout->addWidget( GroupButtons );
// -------------------------------
void SMESHGUI_Preferences_ColorDlg::SetColor( int type, const QColor& color )
{
switch ( type ) {
- case 1 : btnFillColor->setColor( color ); break; // fill
- case 2 : btnOutlineColor->setColor( color ); break; // outline
- case 3 : btnNodeColor->setColor( color ); break; // node
- case 4 : btnBackFaceColor->setColor( color ); break; // back face
+ case 1 : btnFillColor->setColor( color ); break; // fill
+ case 2 : btnOutlineColor->setColor( color ); break; // outline
+ case 3 : btnNodeColor->setColor( color ); break; // node
+ case 4 : btnBackFaceColor->setColor( color ); break; // back face
+ case 5 : btn0DElementsColor->setColor( color ); break; // 0d elements
+ case 6 : btnOrientationColor->setColor( color ); break; // orientation of faces
default: break;
}
}
{
QColor color;
switch ( type ) {
- case 1 : color = btnFillColor->color(); break; // fill
- case 2 : color = btnOutlineColor->color(); break; // outline
- case 3 : color = btnNodeColor->color(); break; // node
- case 4 : color = btnBackFaceColor->color(); break; // back face
+ case 1 : color = btnFillColor->color(); break; // fill
+ case 2 : color = btnOutlineColor->color(); break; // outline
+ case 3 : color = btnNodeColor->color(); break; // node
+ case 4 : color = btnBackFaceColor->color(); break; // back face
+ case 5 : color = btn0DElementsColor->color(); break; // 0d elements
+ case 6 : color = btnOrientationColor->color(); break; // orientation of faces
default: break;
}
return color;
void SMESHGUI_Preferences_ColorDlg::SetIntValue( int type, int value )
{
switch ( type ) {
- case 1 : SpinBox_Width->setValue( value ); break; // width
- case 2 : SpinBox_Nodes_Size->setValue( value ); break; // nodes size = value; break;
- case 3 : SpinBox_Shrink->setValue( value ); break; // shrink coeff
+ case 1 : SpinBox_Width->setValue( value ); break; // width
+ case 2 : SpinBox_Nodes_Size->setValue( value ); break; // nodes size = value; break;
+ case 3 : SpinBox_Shrink->setValue( value ); break; // shrink coeff
+ case 4 : SpinBox_0DElements_Size->setValue( value ); break; // 0d elements
default: break;
}
}
{
int res = 0;
switch ( type ) {
- case 1 : res = SpinBox_Width->value(); break; // width
- case 2 : res = SpinBox_Nodes_Size->value(); break; // nodes size
- case 3 : res = SpinBox_Shrink->value(); break; // shrink coeff
+ case 1 : res = SpinBox_Width->value(); break; // width
+ case 2 : res = SpinBox_Nodes_Size->value(); break; // nodes size
+ case 3 : res = SpinBox_Shrink->value(); break; // shrink coeff
+ case 4 : res = SpinBox_0DElements_Size->value(); break; // 0d elements
+ default: break;
+ }
+ return res;
+}
+
+//=================================================================================
+// function : SetDoubleValue()
+// purpose :
+//=================================================================================
+void SMESHGUI_Preferences_ColorDlg::SetDoubleValue( int type, double value )
+{
+ switch ( type ) {
+ case 1 : SpinBox_Orientation_Scale->setValue( value ); break; // orientation scale
+ default: break;
+ }
+}
+
+//=================================================================================
+// function : GetDoubleValue()
+// purpose :
+//=================================================================================
+double SMESHGUI_Preferences_ColorDlg::GetDoubleValue( int type )
+{
+ double res = 0;
+ switch ( type ) {
+ case 1 : res = SpinBox_Orientation_Scale->value(); break; // orientation scale
+ default: break;
+ }
+ return res;
+}
+
+//=================================================================================
+// function : SetBooleanValue()
+// purpose :
+//=================================================================================
+void SMESHGUI_Preferences_ColorDlg::SetBooleanValue( int type, bool value )
+{
+ switch ( type ) {
+ case 1 : CheckBox_Orientation_3DVectors->setChecked( value ); break; // 3D vectors
+ default: break;
+ }
+}
+
+//=================================================================================
+// function : GetBooleanValue()
+// purpose :
+//=================================================================================
+bool SMESHGUI_Preferences_ColorDlg::GetBooleanValue( int type )
+{
+ bool res = false;
+ switch ( type ) {
+ case 1 : res = CheckBox_Orientation_3DVectors->isChecked(); break; // 3D vectors
default: break;
}
return res;