SMESHGUI_RemoveElementsDlg.h \
SMESHGUI_MeshInfo.h \
SMESHGUI_Measurements.h \
- SMESHGUI_Preferences_ColorDlg.h \
SMESHGUI_Preferences_ScalarBarDlg.h \
SMESHGUI_AddMeshElementDlg.h \
SMESHGUI_XmlHandler.h \
SMESHGUI_CopyMeshDlg.h \
SMESHGUI_PreviewDlg.h \
SMESHGUI_ReorientFacesDlg.h \
+ SMESHGUI_PropertiesDlg.h \
SMESH_SMESHGUI.hxx
# Libraries targets
SMESHGUI_RemoveElementsDlg.cxx \
SMESHGUI_MeshInfo.cxx \
SMESHGUI_Measurements.cxx \
- SMESHGUI_Preferences_ColorDlg.cxx \
SMESHGUI_Preferences_ScalarBarDlg.cxx \
SMESHGUI_AddMeshElementDlg.cxx \
SMESHGUI_XmlHandler.cxx \
SMESHGUI_CopyMeshDlg.cxx \
SMESHGUI_FileValidator.cxx \
SMESHGUI_PreviewDlg.cxx \
- SMESHGUI_ReorientFacesDlg.cxx
+ SMESHGUI_ReorientFacesDlg.cxx \
+ SMESHGUI_PropertiesDlg.cxx
MOC_FILES = \
SMESHGUI_moc.cxx \
SMESHGUI_RemoveElementsDlg_moc.cxx \
SMESHGUI_MeshInfo_moc.cxx \
SMESHGUI_Measurements_moc.cxx \
- SMESHGUI_Preferences_ColorDlg_moc.cxx \
SMESHGUI_Preferences_ScalarBarDlg_moc.cxx \
SMESHGUI_AddMeshElementDlg_moc.cxx \
SMESHGUI_FilterDlg_moc.cxx \
SMESHGUI_CopyMeshDlg_moc.cxx \
SMESHGUI_MeshOrderOp_moc.cxx \
SMESHGUI_PreviewDlg_moc.cxx \
- SMESHGUI_ReorientFacesDlg_moc.cxx
+ SMESHGUI_ReorientFacesDlg_moc.cxx \
+ SMESHGUI_PropertiesDlg_moc.cxx
nodist_libSMESH_la_SOURCES= \
$(MOC_FILES)
#include "SMESHGUI_MeshPatternDlg.h"
#include "SMESHGUI_MultiEditDlg.h"
#include "SMESHGUI_NodesDlg.h"
-#include "SMESHGUI_Preferences_ColorDlg.h"
#include "SMESHGUI_Preferences_ScalarBarDlg.h"
+#include "SMESHGUI_PropertiesDlg.h"
#include "SMESHGUI_RemoveElementsDlg.h"
#include "SMESHGUI_RemoveNodesDlg.h"
#include "SMESHGUI_RenumberingDlg.h"
SALOMEDS::Color aColor = aGroupObject->GetColor();
_PTR(SObject) aGroupSObject = SMESH::FindSObject(aGroupObject);
if (aGroupSObject) {
+ QColor c;
+ int delta;
if(SMESH_Actor *anActor = SMESH::FindActorByEntry(aGroupSObject->GetID().c_str())) {
switch ( aGroupObject->GetType ()) {
case SMESH::NODE:
anActor->Set0DColor( aColor.R, aColor.G, aColor.B ); break;
case SMESH::BALL:
anActor->SetBallColor( aColor.R, aColor.G, aColor.B ); break;
+ case SMESH::VOLUME:
+ SMESH::GetColor("SMESH", "volume_color", c, delta, "255,0,170|-100");
+ anActor->SetVolumeColor( aColor.R, aColor.G, aColor.B, delta ); break;
+ case SMESH::FACE:
default:
- QColor c;
- int delta;
SMESH::GetColor("SMESH", "fill_color", c, delta, "0,170,255|-100");
anActor->SetSufaceColor( aColor.R, aColor.G, aColor.B, delta );
}
(new SMESHGUI_TransparencyDlg( SMESHGUI::GetSMESHGUI() ))->show();
return;
}
- case 1132:{
- QColor c, e, b, n, c0D, cBall, o, outl, selection, preselection;
- int delta;
- int size0D = 0, ballSize = 0;
- int Edgewidth = 0;
- vtkFloatingPointType Shrink = 0.0;
- vtkFloatingPointType faces_orientation_scale = 0.0;
- bool faces_orientation_3dvectors = false;
-
- VTK::MarkerType aMarkerTypeCurrent = VTK::MT_NONE;
- VTK::MarkerScale aMarkerScaleCurrent = VTK::MS_NONE;
- int aMarkerTextureCurrent = 0;
+ case 1132: {
+ vtkFloatingPointType color[3];
+ QColor faceColor, edgeColor, nodeColor, elem0dColor, ballColor;
+ QColor orientationColor, outlineColor, volumeColor;
+ int deltaF = 0, deltaV = 0;
+ int elem0dSize = 1;
+ int ballSize = 1;
+ int edgeWidth = 1;
+ int outlineWidth = 1;
+ vtkFloatingPointType shrinkCoef = 0.0;
+ vtkFloatingPointType orientationScale = 0.0;
+ bool orientation3d = false;
+ VTK::MarkerType markerType = VTK::MT_NONE;
+ VTK::MarkerScale markerScale = VTK::MS_NONE;
+ int markerId = 0;
+ bool hasNodes = false;
+ int presentEntities = 0;
+ bool firstTime = true;
SALOME_ListIteratorOfListIO It( selected );
- for( ; It.More(); It.Next()){
+ for ( ; It.More(); It.Next() ) {
Handle(SALOME_InteractiveObject) IObject = It.Value();
- if(IObject->hasEntry()){
- if(SMESH_Actor *anActor = SMESH::FindActorByEntry(IObject->getEntry())){
- vtkFloatingPointType color[3];
- anActor->GetSufaceColor(color[0], color[1], color[2],delta);
- int c0 = int (color[0] * 255);
- int c1 = int (color[1] * 255);
- int c2 = int (color[2] * 255);
- c.setRgb(c0, c1, c2);
-
- vtkFloatingPointType edgecolor[3];
- anActor->GetEdgeColor(edgecolor[0], edgecolor[1], edgecolor[2]);
- c0 = int (edgecolor[0] * 255);
- c1 = int (edgecolor[1] * 255);
- c2 = int (edgecolor[2] * 255);
- e.setRgb(c0, c1, c2);
-
- vtkFloatingPointType nodecolor[3];
- anActor->GetNodeColor(nodecolor[0], nodecolor[1], nodecolor[2]);
- c0 = int (nodecolor[0] * 255);
- c1 = int (nodecolor[1] * 255);
- c2 = int (nodecolor[2] * 255);
- n.setRgb(c0, c1, c2);
-
- vtkFloatingPointType color0D[3];
- anActor->Get0DColor(color0D[0], color0D[1], color0D[2]);
- c0 = int (color0D[0] * 255);
- c1 = int (color0D[1] * 255);
- c2 = int (color0D[2] * 255);
- c0D.setRgb(c0, c1, c2);
-
- vtkFloatingPointType ballcolor[3];
- anActor->GetBallColor(ballcolor[0], ballcolor[1], ballcolor[2]);
- c0 = int (ballcolor[0] * 255);
- c1 = int (ballcolor[1] * 255);
- c2 = int (ballcolor[2] * 255);
- cBall.setRgb(c0, c1, c2);
-
- vtkFloatingPointType outlineColor[3];
- anActor->GetOutlineColor(outlineColor[0], outlineColor[1], outlineColor[2]);
- c0 = int (outlineColor[0] * 255);
- c1 = int (outlineColor[1] * 255);
- c2 = int (outlineColor[2] * 255);
- outl.setRgb(c0, c1, c2);
-
- vtkFloatingPointType hColor[3];
- anActor->GetHighlightColor(hColor[0], hColor[1], hColor[2]);
- c0 = int (hColor[0] * 255);
- c1 = int (hColor[1] * 255);
- c2 = int (hColor[2] * 255);
- selection.setRgb(c0, c1, c2);
-
- vtkFloatingPointType phColor[3];
- anActor->GetPreHighlightColor(phColor[0], phColor[1], phColor[2]);
- c0 = int (phColor[0] * 255);
- c1 = int (phColor[1] * 255);
- c2 = int (phColor[2] * 255);
- preselection.setRgb(c0, c1, c2);
-
- size0D = (int)anActor->Get0DSize();
- if(size0D == 0)
- size0D = 1;
- ballSize = (int)anActor->GetBallSize();
- if(ballSize == 0)
- ballSize = 1;
- Edgewidth = (int)anActor->GetLineWidth();
- if(Edgewidth == 0)
- Edgewidth = 1;
- Shrink = anActor->GetShrinkFactor();
-
- vtkFloatingPointType faces_orientation_color[3];
- anActor->GetFacesOrientationColor(faces_orientation_color);
- c0 = int (faces_orientation_color[0] * 255);
- c1 = int (faces_orientation_color[1] * 255);
- c2 = int (faces_orientation_color[2] * 255);
- o.setRgb(c0, c1, c2);
-
- faces_orientation_scale = anActor->GetFacesOrientationScale();
- faces_orientation_3dvectors = anActor->GetFacesOrientation3DVectors();
-
- aMarkerTypeCurrent = anActor->GetMarkerType();
- aMarkerScaleCurrent = anActor->GetMarkerScale();
- aMarkerTextureCurrent = anActor->GetMarkerTexture();
-
- // even if there are multiple objects in the selection,
- // we need only the first one to get values for the dialog
- break;
- }
- }
- }
-
- SMESHGUI_Preferences_ColorDlg *aDlg =
- new SMESHGUI_Preferences_ColorDlg( SMESHGUI::GetSMESHGUI() );
- aDlg->SetBooleanValue(1, faces_orientation_3dvectors);
- aDlg->SetColor(1, c);
- aDlg->SetColor(2, e);
- aDlg->SetColor(3, n);
- aDlg->SetColor(4, outl);
- aDlg->SetColor(5, c0D);
- aDlg->SetColor(6, cBall);
- aDlg->SetColor(7, o);
- aDlg->SetColor(8, selection);
- aDlg->SetColor(9, preselection);
- aDlg->SetDeltaBrightness(delta);
- aDlg->SetDoubleValue(1, faces_orientation_scale);
- aDlg->SetIntValue(1, Edgewidth);
- aDlg->SetIntValue(2, int(Shrink*100.));
- aDlg->SetIntValue(3, size0D);
- aDlg->SetIntValue(4, ballSize);
-
- aDlg->setCustomMarkerMap( theMarkerMap[ aStudy->StudyId() ] );
-
- if( aMarkerTypeCurrent != VTK::MT_USER )
- aDlg->setStandardMarker( aMarkerTypeCurrent, aMarkerScaleCurrent );
+ if ( !IObject->hasEntry() ) continue;
+ SMESH_Actor* anActor = SMESH::FindActorByEntry( IObject->getEntry() );
+ if ( !anActor || !anActor->GetObject() ) continue;
+
+ if ( firstTime ) {
+ // nodes: color, marker
+ anActor->GetNodeColor( color[0], color[1], color[2] );
+ nodeColor.setRgbF( color[0], color[1], color[2] );
+ markerType = anActor->GetMarkerType();
+ markerScale = anActor->GetMarkerScale();
+ markerId = anActor->GetMarkerTexture();
+ // edges: color, width
+ anActor->GetEdgeColor( color[0], color[1], color[2] );
+ edgeColor.setRgbF( color[0], color[1], color[2] );
+ edgeWidth = qMax( (int)anActor->GetLineWidth(), 1 ); // minimum allowed width is 1
+ // faces: front color, back color (delta)
+ anActor->GetSufaceColor( color[0], color[1], color[2], deltaF );
+ faceColor.setRgbF( color[0], color[1], color[2] );
+ // faces: front color, back color (delta)
+ anActor->GetVolumeColor( color[0], color[1], color[2], deltaV );
+ volumeColor.setRgbF( color[0], color[1], color[2] );
+ // 0d elements: color, size
+ anActor->Get0DColor( color[0], color[1], color[2] );
+ elem0dColor.setRgbF( color[0], color[1], color[2] );
+ elem0dSize = qMax( (int)anActor->Get0DSize(), 1 ); // minimum allowed size is 1
+ // balls: color, size
+ anActor->GetBallColor( color[0], color[1], color[2] );
+ ballColor.setRgbF( color[0], color[1], color[2] );
+ ballSize = qMax( (int)anActor->GetBallSize(), 1 ); // minimum allowed size is 1
+ // outlines: color
+ anActor->GetOutlineColor( color[0], color[1], color[2] );
+ outlineColor.setRgbF( color[0], color[1], color[2] );
+ outlineWidth = qMax( (int)anActor->GetOutlineWidth(), 1 ); // minimum allowed width is 1
+ // orientation vectors: color, scale, 3d flag
+ anActor->GetFacesOrientationColor( color[0], color[1], color[2] );
+ orientationColor.setRgbF( color[0], color[1], color[2] );
+ orientationScale = anActor->GetFacesOrientationScale();
+ orientation3d = anActor->GetFacesOrientation3DVectors();
+ // shrink factor
+ shrinkCoef = anActor->GetShrinkFactor();
+ }
+
+ firstTime = false; // we only take properties from first object (for performance reasons)
+
+ if ( !hasNodes )
+ hasNodes = anActor->GetObject()->GetNbEntities( SMDSAbs_Node );
+ if ( !(presentEntities & SMESH_Actor::eEdges) && anActor->GetObject()->GetNbEntities( SMDSAbs_Edge ) )
+ presentEntities = presentEntities | SMESH_Actor::eEdges;
+ if ( !(presentEntities & SMESH_Actor::eFaces) && anActor->GetObject()->GetNbEntities( SMDSAbs_Face ) )
+ presentEntities = presentEntities | SMESH_Actor::eFaces;
+ if ( !(presentEntities & SMESH_Actor::eVolumes) && anActor->GetObject()->GetNbEntities( SMDSAbs_Volume ) )
+ presentEntities = presentEntities | SMESH_Actor::eVolumes;
+ if ( !(presentEntities & SMESH_Actor::e0DElements) && anActor->GetObject()->GetNbEntities( SMDSAbs_0DElement ) )
+ presentEntities = presentEntities | SMESH_Actor::e0DElements;
+ if ( !(presentEntities & SMESH_Actor::eBallElem) && anActor->GetObject()->GetNbEntities( SMDSAbs_Ball ) )
+ presentEntities = presentEntities | SMESH_Actor::eBallElem;
+
+ // as we know that all types of elements are present, we can exit the loop
+ if ( presentEntities == SMESH_Actor::eAllEntity )
+ break;
+ }
+
+ SMESHGUI_PropertiesDlg dlg( theMarkerMap[ aStudy->StudyId() ], SMESHGUI::desktop() );
+ // nodes: color, marker
+ dlg.setNodeColor( nodeColor );
+ if( markerType != VTK::MT_USER )
+ dlg.setNodeMarker( markerType, markerScale );
else
- aDlg->setCustomMarker( aMarkerTextureCurrent );
-
- if(aDlg->exec()){
- QColor color = aDlg->GetColor(1);
- QColor edgecolor = aDlg->GetColor(2);
- QColor nodecolor = aDlg->GetColor(3);
- QColor outlinecolor = aDlg->GetColor(4);
- QColor color0D = aDlg->GetColor(5);
- QColor ballcolor = aDlg->GetColor(6);
- QColor faces_orientation_color = aDlg->GetColor(7);
- QColor selectioncolor = aDlg->GetColor(8);
- QColor preSelectioncolor = aDlg->GetColor(9);
- int delta = aDlg->GetDeltaBrightness();
-
- /* Point marker */
- theMarkerMap[ aStudy->StudyId() ] = aDlg->getCustomMarkerMap();
-
+ dlg.setNodeCustomMarker( markerId );
+ // edges: color, line width
+ dlg.setEdgeColor( edgeColor );
+ dlg.setEdgeWidth( edgeWidth );
+ // faces: front color, back color
+ dlg.setFaceColor( faceColor, deltaF );
+ // volumes: normal color, reversed color
+ dlg.setVolumeColor( volumeColor, deltaV );
+ // outlines: color, line width
+ dlg.setOutlineColor( outlineColor );
+ dlg.setOutlineWidth( outlineWidth );
+ // 0d elements: color, size
+ dlg.setElem0dColor( elem0dColor );
+ dlg.setElem0dSize( elem0dSize );
+ // balls: color, size
+ dlg.setBallColor( ballColor );
+ dlg.setBallSize( ballSize );
+ // orientation: color, scale, 3d flag
+ dlg.setOrientationColor( orientationColor );
+ dlg.setOrientationSize( int( orientationScale * 100. ) );
+ dlg.setOrientation3d( orientation3d );
+ // shrink: scale factor
+ dlg.setShrinkCoef( int( shrinkCoef * 100. ) );
+ // hide unused controls
+ dlg.showControls( presentEntities, hasNodes );
+
+ if ( dlg.exec() ) {
+ nodeColor = dlg.nodeColor();
+ markerType = dlg.nodeMarkerType();
+ markerScale = dlg.nodeMarkerScale();
+ markerId = dlg.nodeMarkerId();
+ edgeColor = dlg.edgeColor();
+ edgeWidth = dlg.edgeWidth();
+ faceColor = dlg.faceColor();
+ deltaF = dlg.faceColorDelta();
+ volumeColor = dlg.volumeColor();
+ deltaV = dlg.volumeColorDelta();
+ outlineColor = dlg.outlineColor();
+ outlineWidth = dlg.outlineWidth();
+ elem0dColor = dlg.elem0dColor();
+ elem0dSize = dlg.elem0dSize();
+ ballColor = dlg.ballColor();
+ ballSize = dlg.ballSize();
+ orientationColor = dlg.orientationColor();
+ orientationScale = dlg.orientationSize() / 100.;
+ orientation3d = dlg.orientation3d();
+ shrinkCoef = dlg.shrinkCoef() / 100.;
+
+ // store point markers map that might be changed by the user
+ theMarkerMap[ aStudy->StudyId() ] = dlg.customMarkers();
+
+ // set properties from dialog box to the presentations
SALOME_ListIteratorOfListIO It( selected );
- for( ; It.More(); It.Next()){
+ for ( ; It.More(); It.Next() ) {
Handle(SALOME_InteractiveObject) IObject = It.Value();
- if(IObject->hasEntry()){
- if(SMESH_Actor *anActor = SMESH::FindActorByEntry(IObject->getEntry())){
- /* actor color and backface color */
- anActor->SetSufaceColor(vtkFloatingPointType (color.red()) / 255.,
- vtkFloatingPointType (color.green()) / 255.,
- vtkFloatingPointType (color.blue()) / 255.,
- delta);
- /* edge color */
- anActor->SetEdgeColor(vtkFloatingPointType (edgecolor.red()) / 255.,
- vtkFloatingPointType (edgecolor.green()) / 255.,
- vtkFloatingPointType (edgecolor.blue()) / 255.);
- /* edge outline */
- anActor->SetOutlineColor(vtkFloatingPointType (outlinecolor.red()) / 255.,
- vtkFloatingPointType (outlinecolor.green()) / 255.,
- vtkFloatingPointType (outlinecolor.blue()) / 255.);
-
- /* selection */
- anActor->SetHighlightColor(vtkFloatingPointType (selectioncolor.red()) / 255.,
- vtkFloatingPointType (selectioncolor.green()) / 255.,
- vtkFloatingPointType (selectioncolor.blue()) / 255.);
- /* pre-selection */
- anActor->SetPreHighlightColor(vtkFloatingPointType (preSelectioncolor.red()) / 255.,
- vtkFloatingPointType (preSelectioncolor.green()) / 255.,
- vtkFloatingPointType (preSelectioncolor.blue()) / 255.);
-
-
- /* Shrink factor and size edges */
- anActor->SetShrinkFactor(aDlg->GetIntValue(2) / 100.);
- anActor->SetLineWidth(aDlg->GetIntValue(1));
-
- /* Nodes color and size */
- anActor->SetNodeColor(vtkFloatingPointType (nodecolor.red()) / 255.,
- vtkFloatingPointType (nodecolor.green()) / 255.,
- vtkFloatingPointType (nodecolor.blue()) / 255.);
-
- /* 0D elements */
- anActor->Set0DColor(vtkFloatingPointType (color0D.red()) / 255.,
- vtkFloatingPointType (color0D.green()) / 255.,
- vtkFloatingPointType (color0D.blue()) / 255.);
- anActor->Set0DSize(aDlg->GetIntValue(3));
-
- /* Ball elements */
- anActor->SetBallColor(vtkFloatingPointType (ballcolor.red()) / 255.,
- vtkFloatingPointType (ballcolor.green()) / 255.,
- vtkFloatingPointType (ballcolor.blue()) / 255.);
- anActor->SetBallSize(aDlg->GetIntValue(4));
-
- /* Faces orientation */
- vtkFloatingPointType c[3] = {vtkFloatingPointType(faces_orientation_color.redF()),
- vtkFloatingPointType(faces_orientation_color.greenF()),
- vtkFloatingPointType(faces_orientation_color.blueF())};
- anActor->SetFacesOrientationColor(c);
- anActor->SetFacesOrientationScale(aDlg->GetDoubleValue(1));
- anActor->SetFacesOrientation3DVectors(aDlg->GetBooleanValue(1));
-
- VTK::MarkerType aMarkerTypeNew = aDlg->getMarkerType();
- VTK::MarkerScale aMarkerScaleNew = aDlg->getStandardMarkerScale();
- int aMarkerTextureNew = aDlg->getCustomMarkerID();
- if( aMarkerTypeNew != VTK::MT_USER )
- anActor->SetMarkerStd( aMarkerTypeNew, aMarkerScaleNew );
- else {
- const VTK::MarkerMap& aMarkerMap = theMarkerMap[ aStudy->StudyId() ];
- VTK::MarkerMap::const_iterator anIter = aMarkerMap.find( aMarkerTextureNew );
- if( anIter != aMarkerMap.end() )
- anActor->SetMarkerTexture( aMarkerTextureNew, anIter->second.second );
- }
-
- SMESH::SMESH_GroupBase_var aGroupObject = SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IObject);
- if( !aGroupObject->_is_nil() )
- {
- SMESH::ElementType anElementType = aGroupObject->GetType();
- QColor aColor;
- switch( anElementType )
- {
- case SMESH::NODE: aColor = nodecolor; break;
- case SMESH::EDGE: aColor = edgecolor; break;
- default: aColor = color; break;
- }
-
- SALOMEDS::Color aGroupColor;
- aGroupColor.R = (float)aColor.red() / 255.0;
- aGroupColor.G = (float)aColor.green() / 255.0;
- aGroupColor.B = (float)aColor.blue() / 255.0;
- aGroupObject->SetColor( aGroupColor );
- }
- }
- }
- }
- SMESH::RepaintCurrentView();
- }
- delete aDlg;
+ if ( !IObject->hasEntry() ) continue;
+ SMESH_Actor* anActor = SMESH::FindActorByEntry( IObject->getEntry() );
+ if ( !anActor ) continue;
+
+ // nodes: color, marker
+ anActor->SetNodeColor( nodeColor.redF(), nodeColor.greenF(), nodeColor.blueF() );
+ if ( markerType != VTK::MT_USER ) {
+ anActor->SetMarkerStd( markerType, markerScale );
+ }
+ else {
+ const VTK::MarkerMap& markerMap = theMarkerMap[ aStudy->StudyId() ];
+ VTK::MarkerMap::const_iterator iter = markerMap.find( markerId );
+ if ( iter != markerMap.end() )
+ anActor->SetMarkerTexture( markerId, iter->second.second );
+ }
+ // volumes: normal color, reversed color (delta)
+ anActor->SetVolumeColor( volumeColor.redF(), volumeColor.greenF(), volumeColor.blueF(), deltaV );
+ // faces: front color, back color (delta)
+ anActor->SetSufaceColor( faceColor.redF(), faceColor.greenF(), faceColor.blueF(), deltaF );
+ // edges: color, width
+ anActor->SetEdgeColor( edgeColor.redF(), edgeColor.greenF(), edgeColor.blueF() );
+ anActor->SetLineWidth( edgeWidth );
+ // outlines: color
+ anActor->SetOutlineColor( outlineColor.redF(), outlineColor.greenF(), outlineColor.blueF() );
+ anActor->SetOutlineWidth( outlineWidth );
+ // 0D elements: color, size
+ anActor->Set0DColor( elem0dColor.redF(), elem0dColor.greenF(), elem0dColor.blueF() );
+ anActor->Set0DSize( elem0dSize );
+ // balls: color, size
+ anActor->SetBallColor( ballColor.redF(), ballColor.greenF(), ballColor.blueF() );
+ anActor->SetBallSize( ballSize );
+ // orientation: color, scale, 3d flag
+ anActor->SetFacesOrientationColor( orientationColor.redF(), orientationColor.greenF(), orientationColor.blueF() );
+ anActor->SetFacesOrientationScale( orientationScale );
+ anActor->SetFacesOrientation3DVectors( orientation3d );
+ // shrink factor
+ anActor->SetShrinkFactor( shrinkCoef );
+
+ // for groups, set also proper color
+ SMESH::SMESH_GroupBase_var aGroupObject = SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IObject);
+ if ( !aGroupObject->_is_nil() ) {
+ SMESH::ElementType anElementType = aGroupObject->GetType();
+ QColor aColor;
+ switch( anElementType ) {
+ case SMESH::NODE:
+ aColor = nodeColor; break;
+ case SMESH::EDGE:
+ aColor = edgeColor; break;
+ case SMESH::FACE:
+ aColor = faceColor; break;
+ case SMESH::VOLUME:
+ aColor = volumeColor; break;
+ case SMESH::ELEM0D:
+ aColor = elem0dColor; break;
+ case SMESH::BALL:
+ aColor = ballColor; break;
+ default: break;
+ }
+
+ if ( aColor.isValid() ) {
+ SALOMEDS::Color aGroupColor;
+ aGroupColor.R = aColor.redF();
+ aGroupColor.G = aColor.greenF();
+ aGroupColor.B = aColor.blueF();
+ aGroupObject->SetColor( aGroupColor );
+ }
+ } // if ( !aGroupObject->_is_nil() )
+ } // for ( ; It.More(); It.Next() )
+ SMESH::RepaintCurrentView();
+ } // if ( dlg.exec() )
return;
- }
- }
+ } // case 1132:
+ } // switch(theCommandID)
SALOME_ListIteratorOfListIO It( selected );
for( ; It.More(); It.Next()){
Handle(SALOME_InteractiveObject) IObject = It.Value();
setPreferenceProperty( markerScale, "indexes", aMarkerScaleIndicesList );
int elemGroup = addPreference( tr( "PREF_GROUP_ELEMENTS" ), meshTab );
- setPreferenceProperty( elemGroup, "columns", 2 );
+ //setPreferenceProperty( elemGroup, "columns", 2 );
- int ColorId = addPreference( tr( "PREF_FILL" ), elemGroup, LightApp_Preferences::BiColor, "SMESH", "fill_color" );
+ int ColorId = addPreference( tr( "PREF_FILL" ), elemGroup, LightApp_Preferences::BiColor, "SMESH", "fill_color" );
+ setPreferenceProperty( ColorId, "text", tr("PREF_BACKFACE") );
+ ColorId = addPreference( tr( "PREF_VOLUME" ), elemGroup, LightApp_Preferences::BiColor, "SMESH", "volume_color" );
+ setPreferenceProperty( ColorId, "text", tr("PREF_REVERSEDVOLUME") );
addPreference( tr( "PREF_COLOR_0D" ), elemGroup, LightApp_Preferences::Color, "SMESH", "elem0d_color" );
addPreference( tr( "PREF_BALL_COLOR" ), elemGroup, LightApp_Preferences::Color, "SMESH", "ball_elem_color" );
addPreference( tr( "PREF_OUTLINE" ), elemGroup, LightApp_Preferences::Color, "SMESH", "outline_color" );
addPreference( tr( "PREF_WIREFRAME" ), elemGroup, LightApp_Preferences::Color, "SMESH", "wireframe_color" );
- setPreferenceProperty( ColorId, "text", tr("PREF_BACKFACE") );
int grpGroup = addPreference( tr( "PREF_GROUP_GROUPS" ), meshTab );
setPreferenceProperty( grpGroup, "columns", 2 );
LightApp_Preferences::IntSpin, "SMESH", "ball_elem_size");
int elemW = addPreference(tr("PREF_WIDTH"), elemGroup,
LightApp_Preferences::IntSpin, "SMESH", "element_width");
+ int outW = addPreference(tr("PREF_OUTLINE_WIDTH"), elemGroup,
+ LightApp_Preferences::IntSpin, "SMESH", "outline_width");
int shrink = addPreference(tr("PREF_SHRINK_COEFF"), elemGroup,
LightApp_Preferences::IntSpin, "SMESH", "shrink_coeff");
setPreferenceProperty( elemW, "min", 1 );
setPreferenceProperty( elemW, "max", 5 );
+ setPreferenceProperty( outW, "min", 1 );
+ setPreferenceProperty( outW, "max", 5 );
+
setPreferenceProperty( shrink, "min", 0 );
setPreferenceProperty( shrink, "max", 100 );
aColor.setHsv( aHue, 255, 255 );
SALOMEDS::Color aSColor;
- aSColor.R = (double)aColor.red() / 255.0;
- aSColor.G = (double)aColor.green() / 255.0;
- aSColor.B = (double)aColor.blue() / 255.0;
+ aSColor.R = aColor.redF();
+ aSColor.G = aColor.greenF();
+ aSColor.B = aColor.blueF();
return aSColor;
}
if ( aMeshGroupSO )
if(SMESH_Actor *anActor = SMESH::FindActorByEntry(aMeshGroupSO->GetID().c_str())) {
anActor->setName(myName->text().toLatin1().data());
+ QColor c;
+ int delta;
switch ( myTypeId ) {
case grpNodeSelection: anActor->SetNodeColor( aColor.R, aColor.G, aColor.B ); break;
case grpBallSelection: anActor->SetBallColor( aColor.R, aColor.G, aColor.B ); break;
case grpEdgeSelection: anActor->SetEdgeColor( aColor.R, aColor.G, aColor.B ); break;
- case grpFaceSelection:
case grpVolumeSelection:
+ SMESH::GetColor("SMESH", "volume_color", c , delta, "255,0,170|-100");
+ anActor->SetVolumeColor( aColor.R, aColor.G, aColor.B, delta ); break;
+ break;
+ case grpFaceSelection:
default:
- QColor c;
- int delta;
SMESH::GetColor("SMESH", "fill_color", c , delta, "0,170,255|-100");
anActor->SetSufaceColor( aColor.R, aColor.G, aColor.B, delta ); break;
+ break;
}
}
}
+++ /dev/null
-// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-
-// SMESH SMESHGUI : GUI for SMESH component
-// File : SMESHGUI_Preferences_ColorDlg.cxx
-// Author : Nicolas REJNERI, Open CASCADE S.A.S.
-// SMESH includes
-//
-#include "SMESHGUI_Preferences_ColorDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_SpinBox.h"
-#include "SMESHGUI_Utils.h"
-
-// SALOME GUI includes
-#include <SUIT_Desktop.h>
-#include <SUIT_MessageBox.h>
-#include <SUIT_ResourceMgr.h>
-#include <SUIT_Session.h>
-#include <QtxColorButton.h>
-#include <VTKViewer_MarkerWidget.h>
-#include <LightApp_Application.h>
-#include <SalomeApp_IntSpinBox.h>
-
-// Qt includes
-#include <QGroupBox>
-#include <QLabel>
-#include <QPushButton>
-#include <QVBoxLayout>
-#include <QHBoxLayout>
-#include <QGridLayout>
-#include <QCheckBox>
-#include <QKeyEvent>
-
-#define SPACING 6
-#define MARGIN 11
-
-//=================================================================================
-// function : SMESHGUI_Preferences_ColorDlg()
-// purpose : Constructs a SMESHGUI_Preferences_ColorDlg which is a child
-// of 'parent', with the name 'name' and widget flags set to 'f'
-// The dialog will by default be modeless, unless you
-// set'modal' to true to construct a modal dialog.
-//=================================================================================
-SMESHGUI_Preferences_ColorDlg::SMESHGUI_Preferences_ColorDlg( SMESHGUI* theModule )
- : QDialog( SMESH::GetDesktop( theModule ) ),
- mySMESHGUI( theModule )
-{
- setModal( true );
- setWindowTitle( tr( "DIALOG_TITLE" ) );
- setSizeGripEnabled( true );
-
- // -------------------------------
- QVBoxLayout* topLayout = new QVBoxLayout( this );
- topLayout->setSpacing( SPACING );
- topLayout->setMargin( MARGIN );
-
- // -------------------------------
- QGroupBox* ButtonGroup1 = new QGroupBox( tr( "GRP_ELEMENTS" ), this );
- QGridLayout* ButtonGroup1Layout = new QGridLayout( ButtonGroup1 );
- ButtonGroup1Layout->setSpacing( SPACING );
- ButtonGroup1Layout->setMargin( MARGIN );
-
- QLabel* TextLabel_Fill = new QLabel( tr( "SURFACE_COLOR_LBL" ), ButtonGroup1 );
-
- toolSurfColor = new QtxBiColorTool(ButtonGroup1);
- toolSurfColor->setText( tr( "BACKSURFACE_COLOR_LBL" ));
-
- QLabel* TextLabel_Outline = new QLabel( tr( "OUTLINE_COLOR_LBL" ), ButtonGroup1 );
- btnOutlineColor = new QtxColorButton( ButtonGroup1 );
-
- QLabel* TextLabel_Wireframe = new QLabel( tr( "WIREFRAME_COLOR_LBL" ), ButtonGroup1 );
- btnWireframeColor = new QtxColorButton( ButtonGroup1 );
-
- QLabel* TextLabel_0DElements_Color = new QLabel( tr( "0D_ELEMENTS_COLOR_LBL" ), ButtonGroup1 );
- btn0DElementsColor = new QtxColorButton( ButtonGroup1 );
-
- QLabel* TextLabel_0DElements_Size = new QLabel( tr( "0D_ELEMENTS_SIZE_LBL" ), ButtonGroup1 );
- SpinBox_0DElements_Size = new SalomeApp_IntSpinBox( ButtonGroup1 );
- SpinBox_0DElements_Size->setAcceptNames( false ); // No Notebook variables allowed
- 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_BallElem_Color = new QLabel( tr( "BALL_ELEMENTS_COLOR_LBL" ), ButtonGroup1 );
- btnBallElemColor = new QtxColorButton( ButtonGroup1 );
-
- QLabel* TextLabel_BallElem_Size = new QLabel( tr( "BALL_ELEMENTS_SIZE_LBL" ), ButtonGroup1 );
- SpinBox_BallElem_Size = new SalomeApp_IntSpinBox( ButtonGroup1 );
- SpinBox_BallElem_Size->setAcceptNames( false ); // No Notebook variables allowed
- SpinBox_BallElem_Size->setRange( 1, 10 );
- SpinBox_BallElem_Size->setSingleStep( 1 );
- SpinBox_BallElem_Size->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
- SpinBox_BallElem_Size->setButtonSymbols( QSpinBox::PlusMinus );
-
- QLabel* TextLabel_Width = new QLabel( tr( "LINE_WIDTH_LBL" ), ButtonGroup1 );
- SpinBox_Width = new SalomeApp_IntSpinBox( ButtonGroup1 );
- SpinBox_Width->setAcceptNames( false ); // No Notebook variables allowed
- SpinBox_Width->setRange( 1, 5 );
- SpinBox_Width->setSingleStep( 1 );
- SpinBox_Width->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
- SpinBox_Width->setButtonSymbols( QSpinBox::PlusMinus );
-
- QLabel* TextLabel_ShrinkCoeff = new QLabel( tr( "SHRINK_COEF_LBL" ), ButtonGroup1 );
- SpinBox_Shrink = new SalomeApp_IntSpinBox( ButtonGroup1 );
- SpinBox_Shrink->setAcceptNames( false ); // No Notebook variables allowed
- SpinBox_Shrink->setRange( 20, 100 );
- SpinBox_Shrink->setSingleStep( 1 );
- SpinBox_Shrink->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
- SpinBox_Shrink->setButtonSymbols( QSpinBox::PlusMinus );
-
- int row = 0;
- ButtonGroup1Layout->addWidget( TextLabel_Fill, row, 0 );
- ButtonGroup1Layout->addWidget( toolSurfColor, row++, 1, 1, 3 );
-
- ButtonGroup1Layout->addWidget( TextLabel_Outline, row, 0 );
- ButtonGroup1Layout->addWidget( btnOutlineColor, row, 1 );
- ButtonGroup1Layout->addWidget( TextLabel_Wireframe, row, 2 );
- ButtonGroup1Layout->addWidget( btnWireframeColor, row++, 3 );
-
- ButtonGroup1Layout->addWidget( TextLabel_0DElements_Color, row, 0 );
- ButtonGroup1Layout->addWidget( btn0DElementsColor, row, 1 );
-
- ButtonGroup1Layout->addWidget( TextLabel_0DElements_Size, row, 2 );
- ButtonGroup1Layout->addWidget( SpinBox_0DElements_Size, row++, 3 );
-
- ButtonGroup1Layout->addWidget( TextLabel_BallElem_Color, row, 0 );
- ButtonGroup1Layout->addWidget( btnBallElemColor, row, 1 );
-
- ButtonGroup1Layout->addWidget( TextLabel_BallElem_Size, row, 2 );
- ButtonGroup1Layout->addWidget( SpinBox_BallElem_Size, row++, 3 );
-
- ButtonGroup1Layout->addWidget( TextLabel_Width, row, 0 );
- ButtonGroup1Layout->addWidget( SpinBox_Width, row, 1 );
- ButtonGroup1Layout->addWidget( TextLabel_ShrinkCoeff, row, 2 );
- ButtonGroup1Layout->addWidget( SpinBox_Shrink, row, 3 );
-
- // -------------------------------
- QGroupBox* ButtonGroup2 = new QGroupBox( tr( "GRP_NODES" ), this );
- QGridLayout* ButtonGroup2Layout = new QGridLayout( ButtonGroup2 );
- ButtonGroup2Layout->setSpacing( SPACING );
- ButtonGroup2Layout->setMargin( MARGIN );
-
- QLabel* TextLabel_Nodes_Color = new QLabel( tr( "NODES_COLOR_LBL" ), ButtonGroup2 );
- btnNodeColor = new QtxColorButton( ButtonGroup2 );
-
- QGroupBox* MarkerGroup = new QGroupBox( tr( "NODES_MARKER_LBL" ), ButtonGroup2 );
- QVBoxLayout* MarkerGroupLayout = new QVBoxLayout( MarkerGroup );
- MarkerGroupLayout->setSpacing( 0 );
- MarkerGroupLayout->setMargin( 0 );
-
- MarkerWidget = new VTKViewer_MarkerWidget( MarkerGroup );
-
- MarkerGroupLayout->addWidget( MarkerWidget );
-
- row = 0;
- ButtonGroup2Layout->addWidget( TextLabel_Nodes_Color, row, 0 );
- ButtonGroup2Layout->addWidget( btnNodeColor, row++, 1 );
- ButtonGroup2Layout->addWidget( MarkerGroup, row++, 0, 1, 3 );
- ButtonGroup2Layout->setColumnStretch( row, 1 );
-
- // -------------------------------
- QGroupBox* ButtonGroup3 = new QGroupBox( tr( "GRP_ORIENTATION" ), this );
- QGridLayout* ButtonGroup3Layout = new QGridLayout( ButtonGroup3 );
- ButtonGroup3Layout->setSpacing( SPACING );
- ButtonGroup3Layout->setMargin( MARGIN );
-
- QLabel* TextLabel_Orientation_Color = new QLabel( tr( "ORIENTATION_COLOR_LBL" ), ButtonGroup3 );
- btnOrientationColor = new QtxColorButton( ButtonGroup3 );
-
- QLabel* TextLabel_Orientation_Scale = new QLabel( tr( "ORIENTATION_SCALE_LBL" ), ButtonGroup3 );
- SpinBox_Orientation_Scale = new SMESHGUI_SpinBox( ButtonGroup3 );
- SpinBox_Orientation_Scale->setAcceptNames( false ); // No Notebook variables allowed
- SpinBox_Orientation_Scale->RangeStepAndValidator( .05, .5, .05, "parametric_precision" );
- SpinBox_Orientation_Scale->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
- SpinBox_Orientation_Scale->setButtonSymbols( QSpinBox::PlusMinus );
-
- CheckBox_Orientation_3DVectors = new QCheckBox( tr( "3D_VECTORS_LBL" ), ButtonGroup3 );
-
- row = 0;
- ButtonGroup3Layout->addWidget( TextLabel_Orientation_Color, row, 0 );
- ButtonGroup3Layout->addWidget( btnOrientationColor, row, 1 );
- ButtonGroup3Layout->addWidget( TextLabel_Orientation_Scale, row, 2 );
- ButtonGroup3Layout->addWidget( SpinBox_Orientation_Scale, row++, 3 );
- ButtonGroup3Layout->addWidget( CheckBox_Orientation_3DVectors, row, 0, 1, 4 );
-
- // -------------------------------
- QGroupBox* ButtonGroup4 = new QGroupBox( tr( "GRP_SELECTION" ), this );
- QGridLayout* ButtonGroup4Layout = new QGridLayout( ButtonGroup4 );
- ButtonGroup3Layout->setSpacing( SPACING );
- ButtonGroup3Layout->setMargin( MARGIN );
-
- QLabel* TextLabel_Selection_Color = new QLabel( tr( "SELECTION_COLOR_LBL" ), ButtonGroup4 );
- btnSelectionColor = new QtxColorButton( ButtonGroup4 );
-
- QLabel* TextLabel_Preselection_Color = new QLabel( tr( "PRESELECTION_COLOR_LBL" ), ButtonGroup4 );
- btnPreselectionColor = new QtxColorButton( ButtonGroup4 );
-
- row = 0;
- ButtonGroup4Layout->addWidget( TextLabel_Selection_Color, row, 0 );
- ButtonGroup4Layout->addWidget( btnSelectionColor, row, 1 );
- ButtonGroup4Layout->addWidget( TextLabel_Preselection_Color, row, 2 );
- ButtonGroup4Layout->addWidget( btnPreselectionColor, row, 3 );
-
- // -------------------------------
- QGroupBox* GroupButtons = new QGroupBox( this );
- QHBoxLayout* GroupButtonsLayout = new QHBoxLayout( GroupButtons );
- GroupButtonsLayout->setSpacing( SPACING );
- GroupButtonsLayout->setMargin( MARGIN );
-
- QPushButton* buttonOk = new QPushButton( tr( "SMESH_BUT_OK" ), GroupButtons );
- buttonOk->setAutoDefault( true );
- buttonOk->setDefault( true );
-
- QPushButton* buttonCancel = new QPushButton( tr( "SMESH_BUT_CANCEL" ), GroupButtons );
- buttonCancel->setAutoDefault( true );
-
- QPushButton* buttonHelp = new QPushButton( tr( "SMESH_BUT_HELP" ), GroupButtons );
- buttonHelp->setAutoDefault( true );
-
- GroupButtonsLayout->addWidget( buttonOk );
- GroupButtonsLayout->addSpacing( 10 );
- GroupButtonsLayout->addStretch();
- GroupButtonsLayout->addWidget( buttonCancel );
- GroupButtonsLayout->addWidget( buttonHelp );
-
- // -------------------------------
- topLayout->addWidget( ButtonGroup1 );
- topLayout->addWidget( ButtonGroup2 );
- topLayout->addWidget( ButtonGroup3 );
- // rnv: Selection and preselection colors are defined only in the Preferences
- // topLayout->addWidget( ButtonGroup4 );
- ButtonGroup4->hide();
- topLayout->addWidget( GroupButtons );
-
- // -------------------------------
- mySMESHGUI->SetActiveDialogBox( this );
-
- myHelpFileName = "colors_size_page.html";
-
- /* signals and slots connections */
- connect( buttonOk, SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
- connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) );
- connect( buttonHelp, SIGNAL( clicked() ), this, SLOT( ClickOnHelp() ) );
-
- connect( mySMESHGUI, SIGNAL ( SignalDeactivateActiveDialog() ),
- this, SLOT( DeactivateActiveDialog() ) );
- /* to close dialog if study change */
- connect( mySMESHGUI, SIGNAL ( SignalCloseAllDialogs() ),
- this, SLOT( ClickOnCancel() ) );
-}
-
-//=================================================================================
-// function : ~SMESHGUI_Preferences_ColorDlg()
-// purpose : Destructor
-//=================================================================================
-SMESHGUI_Preferences_ColorDlg::~SMESHGUI_Preferences_ColorDlg()
-{
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::ClickOnOk()
-{
- mySMESHGUI->ResetState();
- accept();
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::ClickOnCancel()
-{
- mySMESHGUI->ResetState();
- reject();
-}
-
-//=================================================================================
-// function : ClickOnHelp()
-// purpose :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::ClickOnHelp()
-{
- LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
- if (app)
- app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
- else {
- QString platform;
-#ifdef WIN32
- platform = "winapplication";
-#else
- platform = "application";
-#endif
- SUIT_MessageBox::warning(this, tr("WRN_WARNING"),
- tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
- arg(app->resourceMgr()->stringValue("ExternalBrowser",
- platform)).
- arg(myHelpFileName));
- }
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::DeactivateActiveDialog()
-{
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::closeEvent( QCloseEvent* )
-{
- ClickOnCancel(); /* same than click on cancel button */
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::ActivateThisDialog()
-{
- /* Emit a signal to deactivate any active dialog */
- mySMESHGUI->EmitSignalDeactivateDialog();
-}
-
-//=================================================================================
-// function : SetColor()
-// purpose :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::SetColor( int type, const QColor& color )
-{
- switch ( type ) {
- case 1 : toolSurfColor->setMainColor( color ); break; // fill
- case 2 : btnWireframeColor->setColor( color ); break; // wireframe
- case 3 : btnNodeColor->setColor( color ); break; // node
- case 4 : btnOutlineColor->setColor( color ); break; // outline
- case 5 : btn0DElementsColor->setColor( color ); break; // 0d elements
- case 6 : btnBallElemColor->setColor( color ); break; // ball elements
- case 7 : btnOrientationColor->setColor( color ); break; // orientation of faces
- case 8 : btnSelectionColor->setColor( color ); break; // selection color
- case 9 : btnPreselectionColor->setColor( color ); break; // pre-selection color
- default: break;
- }
-}
-
-//=================================================================================
-// function : GetColor()
-// purpose :
-//=================================================================================
-QColor SMESHGUI_Preferences_ColorDlg::GetColor( int type )
-{
- QColor color;
- switch ( type ) {
- case 1 : color = toolSurfColor->mainColor(); break; // fill
- case 2 : color = btnWireframeColor->color(); break; // outline
- case 3 : color = btnNodeColor->color(); break; // node
- case 4 : color = btnOutlineColor->color(); break; // node
- case 5 : color = btn0DElementsColor->color(); break; // 0d elements
- case 6 : color = btnBallElemColor->color(); break; // 0d elements
- case 7 : color = btnOrientationColor->color(); break; // orientation of faces
- case 8 : color = btnSelectionColor->color(); break; // selection color
- case 9 : color = btnPreselectionColor->color(); break; // pre-selection color
-
- default: break;
- }
- return color;
-}
-
-//=================================================================================
-// function : SetIntValue()
-// purpose :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::SetIntValue( int type, int value )
-{
- switch ( type ) {
- case 1 : SpinBox_Width->setValue( value ); break; // width
- case 2 : SpinBox_Shrink->setValue( value ); break; // shrink coeff
- case 3 : SpinBox_0DElements_Size->setValue( value ); break; // 0d elements
- case 4 : SpinBox_BallElem_Size->setValue( value ); break; // 0d elements
- default: break;
- }
-}
-
-//=================================================================================
-// function : GetIntValue()
-// purpose :
-//=================================================================================
-int SMESHGUI_Preferences_ColorDlg::GetIntValue( int type )
-{
- int res = 0;
- switch ( type ) {
- case 1 : res = SpinBox_Width->value(); break; // width
- case 2 : res = SpinBox_Shrink->value(); break; // shrink coeff
- case 3 : res = SpinBox_0DElements_Size->value(); break; // 0d elements
- case 4 : res = SpinBox_BallElem_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;
-}
-
-//=================================================================================
-// function : setCustomMarkerMap()
-// purpose :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::setCustomMarkerMap( VTK::MarkerMap theMarkerMap )
-{
- MarkerWidget->setCustomMarkerMap( theMarkerMap );
-}
-
-//=================================================================================
-// function : getCustomMarkerMap()
-// purpose :
-//=================================================================================
-VTK::MarkerMap SMESHGUI_Preferences_ColorDlg::getCustomMarkerMap()
-{
- return MarkerWidget->getCustomMarkerMap();
-}
-
-//=================================================================================
-// function : setStandardMarker()
-// purpose :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::setStandardMarker( VTK::MarkerType theMarkerType,
- VTK::MarkerScale theMarkerScale )
-{
- MarkerWidget->setStandardMarker( theMarkerType, theMarkerScale );
-}
-
-//=================================================================================
-// function : setCustomMarker()
-// purpose :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::setCustomMarker( int theId )
-{
- MarkerWidget->setCustomMarker( theId );
-}
-
-//=================================================================================
-// function : getMarkerType()
-// purpose :
-//=================================================================================
-VTK::MarkerType SMESHGUI_Preferences_ColorDlg::getMarkerType() const
-{
- return MarkerWidget->getMarkerType();
-}
-
-//=================================================================================
-// function : getStandardMarkerScale()
-// purpose :
-//=================================================================================
-VTK::MarkerScale SMESHGUI_Preferences_ColorDlg::getStandardMarkerScale() const
-{
- return MarkerWidget->getStandardMarkerScale();
-}
-
-//=================================================================================
-// function : getCustomMarkerID()
-// purpose :
-//=================================================================================
-int SMESHGUI_Preferences_ColorDlg::getCustomMarkerID() const
-{
- return MarkerWidget->getCustomMarkerID();
-}
-
-//=================================================================================
-// function : SetDeltaBrightness(int)
-// purpose :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::SetDeltaBrightness(int delta)
-{
- toolSurfColor->setDelta(delta);
-}
-//=================================================================================
-// function : GetDeltaBrightness()
-// purpose :
-//=================================================================================
-int SMESHGUI_Preferences_ColorDlg::GetDeltaBrightness()
-{
- return toolSurfColor->delta();
-}
-
-//=================================================================================
-// function : keyPressEvent()
-// purpose :
-//=================================================================================
-void SMESHGUI_Preferences_ColorDlg::keyPressEvent( QKeyEvent* e )
-{
- QDialog::keyPressEvent( e );
- if ( e->isAccepted() )
- return;
-
- if ( e->key() == Qt::Key_F1 ) {
- e->accept();
- ClickOnHelp();
- }
-}
+++ /dev/null
-// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
-
-// SMESH SMESHGUI : GUI for SMESH component
-// File : SMESHGUI_Preferences_ColorDlg.h
-// Author : Nicolas REJNERI, Open CASCADE S.A.S.
-//
-#ifndef SMESHGUI_PREFERENCES_COLORDLG_H
-#define SMESHGUI_PREFERENCES_COLORDLG_H
-
-// SMESH includes
-#include "SMESH_SMESHGUI.hxx"
-
-// SALOME GUI includes
-#include <VTKViewer_MarkerDef.h>
-#include <QtxBiColorTool.h>
-
-// Qt includes
-#include <QDialog>
-
-class QCheckBox;
-class SMESHGUI;
-class SMESHGUI_SpinBox;
-class SalomeApp_IntSpinBox;
-class QtxColorButton;
-class VTKViewer_MarkerWidget;
-
-class SMESHGUI_EXPORT SMESHGUI_Preferences_ColorDlg : public QDialog
-{
- Q_OBJECT
-
-public:
- SMESHGUI_Preferences_ColorDlg( SMESHGUI* );
- ~SMESHGUI_Preferences_ColorDlg();
-
- void SetColor( int, const QColor& );
- QColor GetColor( int );
- void SetIntValue( int, int );
- int GetIntValue( int );
- void SetDoubleValue( int, double );
- double GetDoubleValue( int );
- void SetBooleanValue( int, bool );
- bool GetBooleanValue( int );
-
- void setCustomMarkerMap( VTK::MarkerMap );
- VTK::MarkerMap getCustomMarkerMap();
-
- void SetDeltaBrightness(int);
- int GetDeltaBrightness();
-
- void setStandardMarker( VTK::MarkerType, VTK::MarkerScale );
- void setCustomMarker( int );
- VTK::MarkerType getMarkerType() const;
- VTK::MarkerScale getStandardMarkerScale() const;
- int getCustomMarkerID() const;
-
-protected:
- void closeEvent( QCloseEvent* );
- void keyPressEvent( QKeyEvent* );
-
-private slots:
- void ClickOnOk();
- void ClickOnCancel();
- void ClickOnHelp();
- void DeactivateActiveDialog();
- void ActivateThisDialog();
-
-private:
- SMESHGUI* mySMESHGUI;
-
- QtxBiColorTool* toolSurfColor;
- QtxColorButton* btnWireframeColor;
- QtxColorButton* btnOutlineColor;
- QtxColorButton* btn0DElementsColor;
- QtxColorButton* btnBallElemColor;
- SalomeApp_IntSpinBox* SpinBox_0DElements_Size;
- SalomeApp_IntSpinBox* SpinBox_BallElem_Size;
- SalomeApp_IntSpinBox* SpinBox_Width;
- SalomeApp_IntSpinBox* SpinBox_Shrink;
- QtxColorButton* btnNodeColor;
- VTKViewer_MarkerWidget* MarkerWidget;
- QtxColorButton* btnOrientationColor;
- SMESHGUI_SpinBox* SpinBox_Orientation_Scale;
- QCheckBox* CheckBox_Orientation_3DVectors;
- QtxColorButton* btnPreselectionColor;
- QtxColorButton* btnSelectionColor;
-
- QString myHelpFileName;
-};
-
-#endif // SMESHGUI_PREFERENCES_COLORDLG_H
--- /dev/null
+// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+// File : SMESHGUI_PropertiesDlg.cxx
+// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
+
+#include "SMESHGUI_PropertiesDlg.h"
+#include "SMESH_Actor.h"
+
+#include <QCheckBox>
+#include <QFrame>
+#include <QGroupBox>
+#include <QHBoxLayout>
+#include <QLabel>
+
+#include <QtxBiColorTool.h>
+#include <QtxColorButton.h>
+#include <QtxIntSpinBox.h>
+#include <VTKViewer_MarkerWidget.h>
+
+const int MARGIN = 9;
+const int SPACING = 6;
+
+/*!
+ \class SMESHGUI_PropertiesDlg
+ \brief Dialog box to set-up mesh presentation properties: colors,
+ sizes of elements, width of lines etc
+*/
+
+/*
+ \brief Constructor
+ \param customMarkers custom node markers
+ \param parent parent widget
+*/
+SMESHGUI_PropertiesDlg::SMESHGUI_PropertiesDlg( const VTK::MarkerMap& customMarkers, QWidget* parent )
+ : SMESHGUI_Dialog( parent, true, true, Standard )
+{
+ // set title
+ setWindowTitle( tr( "TITLE" ) );
+
+ // create widgets
+
+ QHBoxLayout* hl;
+ int widthLab1 = 0, widthLab2 = 0;
+
+ // -- node controls
+ myNodeGrp = new QGroupBox( tr( "NODES" ), mainFrame() );
+ QLabel* nodeColorLab = new QLabel( tr( "COLOR" ), myNodeGrp );
+ myNodeColor = new QtxColorButton( myNodeGrp );
+ myNodeMarker = new VTKViewer_MarkerWidget( myNodeGrp );
+ hl = new QHBoxLayout( myNodeGrp );
+ hl->setMargin( MARGIN );
+ hl->setSpacing( SPACING );
+ hl->addWidget( nodeColorLab );
+ hl->addWidget( myNodeColor );
+ hl->addWidget( myNodeMarker );
+ widthLab1 = qMax( widthLab1, nodeColorLab->minimumSizeHint().width() );
+ widthLab2 = qMax( widthLab2, myNodeMarker->typeLabel()->minimumSizeHint().width() );
+
+ // -- edge controls
+ myEdgeGrp = new QGroupBox( tr( "EDGES" ), mainFrame() );
+ QLabel* edgeColorLab = new QLabel( tr( "COLOR" ), myEdgeGrp );
+ myEdgeColor = new QtxColorButton( myEdgeGrp );
+ QLabel* edgeWidthLab = new QLabel( tr( "WIDTH" ), myEdgeGrp );
+ myEdgeWidth = new QtxIntSpinBox( myEdgeGrp );
+ hl = new QHBoxLayout( myEdgeGrp );
+ hl->setMargin( MARGIN );
+ hl->setSpacing( SPACING );
+ hl->addWidget( edgeColorLab );
+ hl->addWidget( myEdgeColor );
+ hl->addWidget( edgeWidthLab );
+ hl->addWidget( myEdgeWidth );
+ widthLab1 = qMax( widthLab1, edgeColorLab->minimumSizeHint().width() );
+ widthLab2 = qMax( widthLab2, edgeWidthLab->minimumSizeHint().width() );
+
+ // -- face controls
+ myFaceGrp = new QGroupBox( tr( "FACES" ), mainFrame() );
+ QLabel* faceColorLab = new QLabel( tr( "FACE_FRONT" ), myFaceGrp );
+ myFaceColor = new QtxBiColorTool( myFaceGrp );
+ myFaceColor->label()->setText( tr( "FACE_BACK" ) );
+ hl = new QHBoxLayout( myFaceGrp );
+ hl->setMargin( MARGIN );
+ hl->setSpacing( SPACING );
+ hl->addWidget( faceColorLab );
+ hl->addWidget( myFaceColor );
+ widthLab1 = qMax( widthLab1, faceColorLab->minimumSizeHint().width() );
+ widthLab2 = qMax( widthLab2, myFaceColor->label()->minimumSizeHint().width() );
+
+ // -- volumes
+ myVolumeGrp = new QGroupBox( tr( "VOLUMES" ), mainFrame() );
+ QLabel* volumeColorLab = new QLabel( tr( "VOLUME_NORMAL" ), myVolumeGrp );
+ myVolumeColor = new QtxBiColorTool( myVolumeGrp );
+ myVolumeColor->label()->setText( tr( "VOLUME_REVERSED" ) );
+ hl = new QHBoxLayout( myVolumeGrp );
+ hl->setMargin( MARGIN );
+ hl->setSpacing( SPACING );
+ hl->addWidget( volumeColorLab );
+ hl->addWidget( myVolumeColor );
+ widthLab1 = qMax( widthLab1, volumeColorLab->minimumSizeHint().width() );
+ widthLab2 = qMax( widthLab2, myVolumeColor->label()->minimumSizeHint().width() );
+
+ // -- outline controls
+ myOutlineGrp = new QGroupBox( tr( "OUTLINES" ), mainFrame() );
+ QLabel* outlineColorLab = new QLabel( tr( "COLOR" ), myOutlineGrp );
+ myOutlineColor = new QtxColorButton( myOutlineGrp );
+ QLabel* outlineWidthLab = new QLabel( tr( "WIDTH" ), myOutlineGrp );
+ myOutlineWidth = new QtxIntSpinBox( myOutlineGrp );
+ hl = new QHBoxLayout( myOutlineGrp );
+ hl->setMargin( MARGIN );
+ hl->setSpacing( SPACING );
+ hl->addWidget( outlineColorLab );
+ hl->addWidget( myOutlineColor );
+ hl->addWidget( outlineWidthLab );
+ hl->addWidget( myOutlineWidth );
+ widthLab1 = qMax( widthLab1, outlineColorLab->minimumSizeHint().width() );
+ widthLab2 = qMax( widthLab2, outlineWidthLab->minimumSizeHint().width() );
+
+ // -- 0d element controls
+ myElem0dGrp = new QGroupBox( tr( "0D_ELEMENTS" ), mainFrame() );
+ QLabel* elem0dColorLab = new QLabel( tr( "COLOR" ), myElem0dGrp );
+ myElem0dColor = new QtxColorButton( myElem0dGrp );
+ QLabel* elem0dSizeLab = new QLabel( tr( "SIZE" ), myElem0dGrp );
+ myElem0dSize = new QtxIntSpinBox( myElem0dGrp );
+ hl = new QHBoxLayout( myElem0dGrp );
+ hl->setMargin( MARGIN );
+ hl->setSpacing( SPACING );
+ hl->addWidget( elem0dColorLab );
+ hl->addWidget( myElem0dColor );
+ hl->addWidget( elem0dSizeLab );
+ hl->addWidget( myElem0dSize );
+ widthLab1 = qMax( widthLab1, elem0dColorLab->minimumSizeHint().width() );
+ widthLab2 = qMax( widthLab2, elem0dSizeLab->minimumSizeHint().width() );
+
+ // -- ball controls
+ myBallGrp = new QGroupBox( tr( "BALLS" ), mainFrame() );
+ QLabel* ballColorLab = new QLabel( tr( "COLOR" ), myBallGrp );
+ myBallColor = new QtxColorButton( myBallGrp );
+ QLabel* ballSizeLab = new QLabel( tr( "SIZE" ), myBallGrp );
+ myBallSize = new QtxIntSpinBox( myBallGrp );
+ hl = new QHBoxLayout( myBallGrp );
+ hl->setMargin( MARGIN );
+ hl->setSpacing( SPACING );
+ hl->addWidget( ballColorLab );
+ hl->addWidget( myBallColor );
+ hl->addWidget( ballSizeLab );
+ hl->addWidget( myBallSize );
+ widthLab1 = qMax( widthLab1, ballColorLab->minimumSizeHint().width() );
+ widthLab2 = qMax( widthLab2, ballSizeLab->minimumSizeHint().width() );
+
+ // -- orientation vector controls
+ myOrientationGrp = new QGroupBox( tr( "ORIENTATIONS" ), mainFrame() );
+ QLabel* orientationColorLab = new QLabel( tr( "COLOR" ), myOrientationGrp );
+ myOrientationColor = new QtxColorButton( myOrientationGrp );
+ QLabel* orientationScaleLab = new QLabel( tr( "ORIENTATION_SCALE" ), myOrientationGrp );
+ myOrientationSize = new QtxIntSpinBox( myOrientationGrp );
+ myOrientationSize->setSuffix( "% ");
+ myOrientation3d = new QCheckBox( tr("ORIENTATION_3D"), myOrientationGrp );
+ hl = new QHBoxLayout( myOrientationGrp );
+ hl->setMargin( MARGIN );
+ hl->setSpacing( SPACING );
+ hl->addWidget( orientationColorLab );
+ hl->addWidget( myOrientationColor );
+ hl->addWidget( orientationScaleLab );
+ hl->addWidget( myOrientationSize );
+ hl->addWidget( myOrientation3d );
+ widthLab1 = qMax( widthLab1, orientationColorLab->minimumSizeHint().width() );
+ widthLab2 = qMax( widthLab2, orientationScaleLab->minimumSizeHint().width() );
+
+ // -- other controls
+ myExtraGrp = new QFrame( mainFrame() );
+ QLabel* shrinkSizeLab = new QLabel( tr( "SHRINK" ), myExtraGrp );
+ myShrinkSize = new QtxIntSpinBox( myExtraGrp );
+ myShrinkSize->setSuffix( "% ");
+ hl = new QHBoxLayout( myExtraGrp );
+ hl->setMargin( MARGIN );
+ hl->setSpacing( SPACING );
+ hl->addWidget( shrinkSizeLab );
+ hl->addWidget( myShrinkSize );
+ hl->addStretch();
+ widthLab1 = qMax( widthLab1, shrinkSizeLab->minimumSizeHint().width() );
+
+ // layout widgets
+ QVBoxLayout* vl = new QVBoxLayout( mainFrame() );
+ vl->setMargin( 0 );
+ vl->setSpacing( SPACING );
+ vl->addWidget( myNodeGrp );
+ vl->addWidget( myEdgeGrp );
+ vl->addWidget( myFaceGrp );
+ vl->addWidget( myVolumeGrp );
+ vl->addWidget( myOutlineGrp );
+ vl->addWidget( myElem0dGrp );
+ vl->addWidget( myBallGrp );
+ vl->addWidget( myOrientationGrp );
+ vl->addWidget( myExtraGrp );
+
+ nodeColorLab->setMinimumWidth( widthLab1 );
+ edgeColorLab->setMinimumWidth( widthLab1 );
+ faceColorLab->setMinimumWidth( widthLab1 );
+ volumeColorLab->setMinimumWidth( widthLab1 );
+ outlineColorLab->setMinimumWidth( widthLab1 );
+ elem0dColorLab->setMinimumWidth( widthLab1 );
+ ballColorLab->setMinimumWidth( widthLab1 );
+ orientationColorLab->setMinimumWidth( widthLab1 );
+ shrinkSizeLab->setMinimumWidth( widthLab1 );
+
+ myNodeMarker->typeLabel()->setMinimumWidth( widthLab2 );
+ edgeWidthLab->setMinimumWidth( widthLab2 );
+ myFaceColor->label()->setMinimumWidth( widthLab2 );
+ myVolumeColor->label()->setMinimumWidth( widthLab2 );
+ outlineWidthLab->setMinimumWidth( widthLab2 );
+ elem0dSizeLab->setMinimumWidth( widthLab2 );
+ ballSizeLab->setMinimumWidth( widthLab2 );
+ orientationScaleLab->setMinimumWidth( widthLab2 );
+
+ myEdgeWidth->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed );
+ myOutlineWidth->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed );
+ myElem0dSize->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed );
+ myBallSize->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed );
+ myOrientationSize->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed );
+ myShrinkSize->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed );
+
+ // initialize widgets
+ myNodeMarker->setCustomMarkers( customMarkers );
+ myElem0dSize->setRange( 1, 10 );
+ myBallSize->setRange( 1, 10 );
+ myEdgeWidth->setRange( 1, 5 );
+ myOutlineWidth->setRange( 1, 5 );
+ myShrinkSize->setRange( 20, 100 );
+ myOrientationSize->setRange( 5, 100 );
+
+ button( OK )->setText( tr( "SMESH_BUT_OK" ) );
+}
+
+/*
+ \brief Destructor: clean-up resources if necessary
+*/
+SMESHGUI_PropertiesDlg::~SMESHGUI_PropertiesDlg()
+{
+}
+
+/*!
+ \brief Set nodes color
+ \param color nodes color
+*/
+void SMESHGUI_PropertiesDlg::setNodeColor( const QColor& color )
+{
+ myNodeColor->setColor( color );
+}
+
+/*!
+ \brief Get nodes color
+ \return current nodes color
+*/
+QColor SMESHGUI_PropertiesDlg::nodeColor() const
+{
+ return myNodeColor->color();
+}
+
+/*!
+ \brief Set standard nodes marker
+ \param type standard nodes marker type
+ \param scale standard nodes marker scale
+*/
+void SMESHGUI_PropertiesDlg::setNodeMarker( VTK::MarkerType type, VTK::MarkerScale scale )
+{
+ myNodeMarker->setMarker( type, scale );
+}
+
+/*!
+ \brief Set custom nodes marker
+ \param id custom nodes marker id
+*/
+void SMESHGUI_PropertiesDlg::setNodeCustomMarker( int id )
+{
+ myNodeMarker->setCustomMarker( id );
+}
+
+/*!
+ \brief Get nodes marker type.
+ For custom marker, VTK::MT_USER is returned and markerId() function
+ then returns its identifier.
+ \return currently selected nodes marker type
+*/
+VTK::MarkerType SMESHGUI_PropertiesDlg::nodeMarkerType() const
+{
+ return myNodeMarker->markerType();
+}
+
+/*!
+ \brief Get nodes marker scale.
+ For custom marker return value is undefined.
+ \return currently selected nodes marker scale
+*/
+VTK::MarkerScale SMESHGUI_PropertiesDlg::nodeMarkerScale() const
+{
+ return myNodeMarker->markerScale();
+}
+
+/*!
+ \brief Get custom nodes marker.
+ For standard markers return value is VTK::MT_NONE.
+ \return custom nodes marker id
+*/
+int SMESHGUI_PropertiesDlg::nodeMarkerId() const
+{
+ return myNodeMarker->markerId();
+}
+
+/*!
+ \brief Set edges (wireframe) color
+ \param color edges color
+*/
+void SMESHGUI_PropertiesDlg::setEdgeColor( const QColor& color )
+{
+ myEdgeColor->setColor( color );
+}
+
+/*!
+ \brief Get edges (wireframe) color
+ \return current edges color
+*/
+QColor SMESHGUI_PropertiesDlg::edgeColor() const
+{
+ return myEdgeColor->color();
+}
+
+/*!
+ \brief Set edges width
+ \param width edges width
+*/
+void SMESHGUI_PropertiesDlg::setEdgeWidth( int width )
+{
+ myEdgeWidth->setValue( width );
+}
+
+/*!
+ \brief Get edges width
+ \return current edges width
+*/
+int SMESHGUI_PropertiesDlg::edgeWidth() const
+{
+ return myEdgeWidth->value();
+}
+
+/*!
+ \brief Set faces colors
+ \param color front faces color
+ \param delta back faces coloring delta
+*/
+void SMESHGUI_PropertiesDlg::setFaceColor( const QColor& color, int delta )
+{
+ myFaceColor->setMainColor( color );
+ myFaceColor->setDelta( delta );
+}
+
+/*!
+ \brief Get front faces color
+ \return current front faces color
+*/
+QColor SMESHGUI_PropertiesDlg::faceColor() const
+{
+ return myFaceColor->mainColor();
+}
+
+/*!
+ \brief Get back faces coloring delta
+ \return current back faces coloring delta
+*/
+int SMESHGUI_PropertiesDlg::faceColorDelta() const
+{
+ return myFaceColor->delta();
+}
+
+/*!
+ \brief Set volumes colors
+ \param color normal volumes color
+ \param delta reversed volumes coloring delta
+*/
+void SMESHGUI_PropertiesDlg::setVolumeColor( const QColor& color, int delta )
+{
+ myVolumeColor->setMainColor( color );
+ myVolumeColor->setDelta( delta );
+}
+
+/*!
+ \brief Get normal volumes color
+ \return current normal volumes color
+*/
+QColor SMESHGUI_PropertiesDlg::volumeColor() const
+{
+ return myVolumeColor->mainColor();
+}
+
+/*!
+ \brief Get reversed volumes coloring delta
+ \return current reversed volumes coloring delta
+*/
+int SMESHGUI_PropertiesDlg::volumeColorDelta() const
+{
+ return myVolumeColor->delta();
+}
+
+/*!
+ \brief Set outlines color
+ \param color outlines color
+*/
+void SMESHGUI_PropertiesDlg::setOutlineColor( const QColor& color )
+{
+ myOutlineColor->setColor( color );
+}
+
+/*!
+ \brief Get outlines color
+ \return current outlines color
+*/
+QColor SMESHGUI_PropertiesDlg::outlineColor() const
+{
+ return myOutlineColor->color();
+}
+
+/*!
+ \brief Set outlines width
+ \param width outlines width
+*/
+void SMESHGUI_PropertiesDlg::setOutlineWidth( int width )
+{
+ myOutlineWidth->setValue( width );
+}
+
+/*!
+ \brief Get outlines width
+ \return current outlines width
+*/
+int SMESHGUI_PropertiesDlg::outlineWidth() const
+{
+ return myOutlineWidth->value();
+}
+
+/*!
+ \brief Set 0D elements color
+ \param color 0D elements color
+*/
+void SMESHGUI_PropertiesDlg::setElem0dColor( const QColor& color )
+{
+ myElem0dColor->setColor( color );
+}
+
+/*!
+ \brief Get 0D elements color
+ \return current 0D elements color
+*/
+QColor SMESHGUI_PropertiesDlg::elem0dColor() const
+{
+ return myElem0dColor->color();
+}
+
+/*!
+ \brief Set 0D elements size
+ \param size 0D elements size
+*/
+void SMESHGUI_PropertiesDlg::setElem0dSize( int size )
+{
+ myElem0dSize->setValue( size );
+}
+
+/*!
+ \brief Get 0D elements size
+ \return current 0D elements size
+*/
+int SMESHGUI_PropertiesDlg::elem0dSize() const
+{
+ return myElem0dSize->value();
+}
+
+/*!
+ \brief Set discrete elements (balls) color
+ \param color discrete elements (balls) color
+*/
+void SMESHGUI_PropertiesDlg::setBallColor( const QColor& color )
+{
+ myBallColor->setColor( color );
+}
+
+/*!
+ \brief Get discrete elements (balls) color
+ \return current discrete elements (balls) color
+*/
+QColor SMESHGUI_PropertiesDlg::ballColor() const
+{
+ return myBallColor->color();
+}
+
+/*!
+ \brief Set discrete elements (balls) size
+ \param size discrete elements (balls) size
+*/
+void SMESHGUI_PropertiesDlg::setBallSize( int size )
+{
+ myBallSize->setValue( size );
+}
+
+/*!
+ \brief Get discrete elements (balls) size
+ \return current discrete elements (balls) size
+*/
+int SMESHGUI_PropertiesDlg::ballSize() const
+{
+ return myBallSize->value();
+}
+
+/*!
+ \brief Set orientation vectors color
+ \param color orientation vectors color
+*/
+void SMESHGUI_PropertiesDlg::setOrientationColor( const QColor& color )
+{
+ myOrientationColor->setColor( color );
+}
+
+/*!
+ \brief Get orientation vectors color
+ \return current orientation vectors color
+*/
+QColor SMESHGUI_PropertiesDlg::orientationColor() const
+{
+ return myOrientationColor->color();
+}
+
+/*!
+ \brief Set orientation vectors scale (percent)
+ \param scale orientation vectors scale
+*/
+void SMESHGUI_PropertiesDlg::setOrientationSize( int scale )
+{
+ myOrientationSize->setValue( scale );
+}
+
+/*!
+ \brief Get orientation vectors scale (percent)
+ \return current orientation vectors scale
+*/
+int SMESHGUI_PropertiesDlg::orientationSize() const
+{
+ return myOrientationSize->value();
+}
+
+/*!
+ \brief Set orientation vectors 3d flag
+ \param on orientation vectors 3d flag value
+*/
+void SMESHGUI_PropertiesDlg::setOrientation3d( bool on )
+{
+ myOrientation3d->setChecked( on );
+}
+
+/*!
+ \brief Get orientation vectors 3d flag
+ \return orientation vectors 3d flag value
+*/
+bool SMESHGUI_PropertiesDlg::orientation3d() const
+{
+ return myOrientation3d->isChecked();
+}
+
+/*!
+ \brief Set shrink coefficient (percent)
+ \param coef shrink coefficient
+*/
+void SMESHGUI_PropertiesDlg::setShrinkCoef( int coef )
+{
+ myShrinkSize->setValue( coef );
+}
+
+/*!
+ \brief Get shrink coefficient (percent)
+ \return current shrink coefficient
+*/
+int SMESHGUI_PropertiesDlg::shrinkCoef() const
+{
+ return myShrinkSize->value();
+}
+
+/*
+ \brief Get custom markers
+ \return custom markers map
+*/
+VTK::MarkerMap SMESHGUI_PropertiesDlg::customMarkers() const
+{
+ return myNodeMarker->customMarkers();
+}
+
+/*!
+ \brief Show / hide controls for specified entity type
+ \param elements mesh element types (an or-ed combination of flags)
+ \param nodes mesh nodes presence flag
+*/
+void SMESHGUI_PropertiesDlg::showControls( int elements, bool nodes )
+{
+ // node controls are supposed to be shown if at least any element type is present
+ // or if there are only nodes
+ myNodeGrp->setVisible( nodes || elements & SMESH_Actor::eAllEntity );
+ // edge controls are shown only if there are edges
+ myEdgeGrp->setVisible( elements & SMESH_Actor::eEdges );
+ // face controls are shown only if there are faces
+ myFaceGrp->setVisible( elements & SMESH_Actor::eFaces );
+ // volume controls are shown only if there are volumes
+ myVolumeGrp->setVisible( elements & SMESH_Actor::eVolumes );
+ // 0d elements controls are shown only if there are 0d elements
+ myElem0dGrp->setVisible( elements & SMESH_Actor::e0DElements );
+ // ball controls are shown only if there are balls
+ myBallGrp->setVisible( elements & SMESH_Actor::eBallElem );
+ // outline controls are needed for faces and volumes
+ myOutlineGrp->setVisible( elements & ( SMESH_Actor::eFaces | SMESH_Actor::eVolumes ) );
+ // orientation controls are needed for faces and volumes
+ myOrientationGrp->setVisible( elements & ( SMESH_Actor::eFaces | SMESH_Actor::eVolumes ) );
+ // shrink factor is shown if there are edges and/or faces and/or volumes
+ myExtraGrp->setVisible( elements & ( SMESH_Actor::eEdges | SMESH_Actor::eFaces | SMESH_Actor::eVolumes ) );
+}
--- /dev/null
+// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+// File : SMESHGUI_PropertiesDlg.h
+// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
+
+#ifndef SMESHGUI_PROPERTIESDLG_H
+#define SMESHGUI_PROPERTIESDLG_H
+
+#include "SMESH_SMESHGUI.hxx"
+#include "SMESHGUI_Dialog.h"
+
+#include <VTKViewer_MarkerDef.h>
+#include <SALOMEconfig.h>
+#include CORBA_CLIENT_HEADER(SMESH_Mesh)
+
+class QCheckBox;
+class QFrame;
+class QGroupBox;
+class QtxColorButton;
+class QtxBiColorTool;
+class QtxIntSpinBox;
+class VTKViewer_MarkerWidget;
+
+class SMESHGUI_EXPORT SMESHGUI_PropertiesDlg : public SMESHGUI_Dialog
+{
+ Q_OBJECT
+
+public:
+ SMESHGUI_PropertiesDlg( const VTK::MarkerMap&, QWidget* parent );
+ ~SMESHGUI_PropertiesDlg();
+
+ void setNodeColor( const QColor& );
+ QColor nodeColor() const;
+ void setNodeMarker( VTK::MarkerType, VTK::MarkerScale );
+ void setNodeCustomMarker( int );
+ VTK::MarkerType nodeMarkerType() const;
+ VTK::MarkerScale nodeMarkerScale() const;
+ int nodeMarkerId() const;
+
+ void setEdgeColor( const QColor& );
+ QColor edgeColor() const;
+ void setEdgeWidth( int );
+ int edgeWidth() const;
+
+ void setFaceColor( const QColor&, int );
+ QColor faceColor() const;
+ int faceColorDelta() const;
+
+ void setVolumeColor( const QColor&, int );
+ QColor volumeColor() const;
+ int volumeColorDelta() const;
+
+ void setOutlineColor( const QColor& );
+ QColor outlineColor() const;
+ void setOutlineWidth( int );
+ int outlineWidth() const;
+
+ void setElem0dColor( const QColor& );
+ QColor elem0dColor() const;
+ void setElem0dSize( int );
+ int elem0dSize() const;
+
+ void setBallColor( const QColor& );
+ QColor ballColor() const;
+ void setBallSize( int );
+ int ballSize() const;
+
+ void setOrientationColor( const QColor& );
+ QColor orientationColor() const;
+ void setOrientationSize( int );
+ int orientationSize() const;
+ void setOrientation3d( bool );
+ bool orientation3d() const;
+
+ void setShrinkCoef( int );
+ int shrinkCoef() const;
+
+ VTK::MarkerMap customMarkers() const;
+
+ void showControls( int, bool );
+
+private:
+ // group boxes
+ QGroupBox* myNodeGrp;
+ QGroupBox* myEdgeGrp;
+ QGroupBox* myFaceGrp;
+ QGroupBox* myVolumeGrp;
+ QGroupBox* myOutlineGrp;
+ QGroupBox* myElem0dGrp;
+ QGroupBox* myBallGrp;
+ QGroupBox* myOrientationGrp;
+ QFrame* myExtraGrp;
+ // widgets
+ // - nodes
+ QtxColorButton* myNodeColor;
+ VTKViewer_MarkerWidget* myNodeMarker;
+ // - edges
+ QtxColorButton* myEdgeColor;
+ QtxIntSpinBox* myEdgeWidth;
+ // - faces
+ QtxBiColorTool* myFaceColor;
+ // - volumes
+ QtxBiColorTool* myVolumeColor;
+ // - outlines
+ QtxColorButton* myOutlineColor;
+ QtxIntSpinBox* myOutlineWidth;
+ // - 0d elements
+ QtxColorButton* myElem0dColor;
+ QtxIntSpinBox* myElem0dSize;
+ // - balls
+ QtxColorButton* myBallColor;
+ QtxIntSpinBox* myBallSize;
+ // - orientation vectors
+ QtxColorButton* myOrientationColor;
+ QtxIntSpinBox* myOrientationSize;
+ QCheckBox* myOrientation3d;
+ // - shrink coefficient
+ QtxIntSpinBox* myShrinkSize;
+};
+
+#endif // SMESHGUI_PROPERTIESDLG_H
SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH::SObjectToObject( aSObj ));
if(!CORBA::is_nil(aGroup) && anActor)
{
- QColor c;int delta;
- SMESH::GetColor( "SMESH", "fill_color", c, delta, "0,170,255|-100" );
+ QColor c;
+ int deltaF, deltaV;
+ SMESH::GetColor( "SMESH", "fill_color", c, deltaF, "0,170,255|-100" );
+ SMESH::GetColor( "SMESH", "volume_color", c, deltaV, "255,0,170|-100" );
+ SMESH::GetColor( "SMESH", "default_grp_color", c );
SALOMEDS::Color aColor = aGroup->GetColor();
if( !( aColor.R > 0 || aColor.G > 0 || aColor.B > 0 ))
{
- aColor.R = (float)c.red() / 255.0;
- aColor.G = (float)c.green() / 255.0;
- aColor.B = (float)c.blue() / 255.0;
+ aColor.R = c.redF();
+ aColor.G = c.greenF();
+ aColor.B = c.blueF();
aGroup->SetColor( aColor );
}
if( aGroup->GetType() == SMESH::NODE )
anActor->Set0DColor( aColor.R, aColor.G, aColor.B );
else if( aGroup->GetType() == SMESH::BALL )
anActor->SetBallColor( aColor.R, aColor.G, aColor.B );
+ else if( aGroup->GetType() == SMESH::VOLUME )
+ anActor->SetVolumeColor( aColor.R, aColor.G, aColor.B, deltaV );
else
- anActor->SetSufaceColor( aColor.R, aColor.G, aColor.B, delta );
+ anActor->SetSufaceColor( aColor.R, aColor.G, aColor.B, deltaF );
}
}
}
if( !anIsOk )
return false;
-
+
DistanceToPosition( theBounds, theNormal, theDist, theOrigin );
return true;
}
<source>PREF_BACKFACE</source>
<translation>Back surface color</translation>
</message>
+ <message>
+ <source>PREF_VOLUME</source>
+ <translation>Volume color</translation>
+ </message>
+ <message>
+ <source>PREF_REVERSEDVOLUME</source>
+ <translation>Reversed volume color</translation>
+ </message>
<message>
<source>PREF_WIREFRAME</source>
<translation>Wireframe color</translation>
</message>
<message>
<source>PREF_WIDTH</source>
- <translation>Width</translation>
+ <translation>Line width</translation>
+ </message>
+ <message>
+ <source>PREF_OUTLINE_WIDTH</source>
+ <translation>Outline width</translation>
</message>
<message>
<source>PREF_PREVIEW_CHUNK_SIZE</source>
</message>
</context>
<context>
- <name>SMESHGUI_Preferences_ColorDlg</name>
- <message>
- <source>DIALOG_TITLE</source>
- <translation>Properties (color, line width, shrink size, ...)</translation>
- </message>
- <message>
- <source>GRP_ELEMENTS</source>
- <translation>Elements</translation>
- </message>
- <message>
- <source>SURFACE_COLOR_LBL</source>
- <translation>Surface color</translation>
- </message>
+ <name>SMESHGUI_ReorientFacesDlg</name>
<message>
- <source>BACKSURFACE_COLOR_LBL</source>
- <translation>Back surface color</translation>
+ <source>CAPTION</source>
+ <translation>Reorient faces by vector</translation>
</message>
<message>
- <source>OUTLINE_COLOR_LBL</source>
- <translation>Outline color</translation>
+ <source>REORIENT_FACES</source>
+ <translation>Reorient</translation>
</message>
<message>
- <source>WIREFRAME_COLOR_LBL</source>
- <translation>Wireframe color</translation>
+ <source>DIRECTION</source>
+ <translation>Direction</translation>
</message>
<message>
- <source>0D_ELEMENTS_COLOR_LBL</source>
- <translation>0D elements</translation>
+ <source>OBJECT</source>
+ <translation>Object</translation>
</message>
<message>
- <source>0D_ELEMENTS_SIZE_LBL</source>
- <translation>Size of 0D elements</translation>
+ <source>POINT</source>
+ <translation>Point</translation>
</message>
<message>
- <source>BALL_ELEMENTS_COLOR_LBL</source>
- <translation>Ball elements</translation>
+ <source>FACE</source>
+ <translation>Face</translation>
</message>
<message>
- <source>BALL_ELEMENTS_SIZE_LBL</source>
- <translation>Size of balls</translation>
+ <source>FACES</source>
+ <translation>Faces source</translation>
</message>
<message>
- <source>LINE_WIDTH_LBL</source>
- <translation>Line width</translation>
+ <source>ORIENTATION</source>
+ <translation>Orientation</translation>
</message>
+</context>
+<context>
+ <name>SMESHGUI_ReorientFacesOp</name>
<message>
- <source>SHRINK_COEF_LBL</source>
- <translation>Shrink coef.</translation>
+ <source>NO_OBJECT_SELECTED</source>
+ <translation>No object selected</translation>
</message>
<message>
- <source>GRP_NODES</source>
- <translation>Nodes</translation>
+ <source>NO_FACES</source>
+ <translation>Object includes no faces</translation>
</message>
<message>
- <source>NODES_COLOR_LBL</source>
- <translation>Color</translation>
+ <source>ZERO_SIZE_VECTOR</source>
+ <translation>Zero size vector</translation>
</message>
<message>
- <source>NODES_MARKER_LBL</source>
- <translation>Marker</translation>
+ <source>INVALID_FACE</source>
+ <translation>Not valid face</translation>
</message>
<message>
- <source>GRP_ORIENTATION</source>
- <translation>Orientation of faces</translation>
+ <source>NB_REORIENTED</source>
+ <translation>%1 faces reversed</translation>
</message>
+</context>
+<context>
+ <name>SMESHGUI_PropertiesDlg</name>
<message>
- <source>ORIENTATION_COLOR_LBL</source>
- <translation>Color</translation>
+ <source>TITLE</source>
+ <translation>Properties</translation>
</message>
<message>
- <source>ORIENTATION_SCALE_LBL</source>
- <translation>Scale</translation>
+ <source>NODES</source>
+ <translation>Nodes</translation>
</message>
<message>
- <source>3D_VECTORS_LBL</source>
- <translation>3D vectors</translation>
+ <source>EDGES</source>
+ <translation>Edges / wireframe</translation>
</message>
<message>
- <source>GRP_SELECTION</source>
- <translation>Selection</translation>
+ <source>FACES</source>
+ <translation>Faces</translation>
</message>
<message>
- <source>SELECTION_COLOR_LBL</source>
- <translation>Selection color</translation>
+ <source>VOLUMES</source>
+ <translation>Volumes</translation>
</message>
<message>
- <source>PRESELECTION_COLOR_LBL</source>
- <translation>Pre-selection color</translation>
+ <source>OUTLINES</source>
+ <translation>Outlines</translation>
</message>
-</context>
-<context>
- <name>SMESHGUI_ReorientFacesDlg</name>
<message>
- <source>CAPTION</source>
- <translation>Reorient faces by vector</translation>
+ <source>0D_ELEMENTS</source>
+ <translation>0D elements</translation>
</message>
<message>
- <source>REORIENT_FACES</source>
- <translation>Reorient</translation>
+ <source>BALLS</source>
+ <translation>Balls</translation>
</message>
<message>
- <source>DIRECTION</source>
- <translation>Direction</translation>
+ <source>ORIENTATIONS</source>
+ <translation>Orientation vectors</translation>
</message>
<message>
- <source>OBJECT</source>
- <translation>Object</translation>
+ <source>COLOR</source>
+ <translation>Color:</translation>
</message>
<message>
- <source>POINT</source>
- <translation>Point</translation>
+ <source>WIDTH</source>
+ <translation>Width:</translation>
</message>
<message>
- <source>FACE</source>
- <translation>Face</translation>
+ <source>FACE_FRONT</source>
+ <translation>Front:</translation>
</message>
<message>
- <source>FACES</source>
- <translation>Faces source</translation>
+ <source>FACE_BACK</source>
+ <translation>Back:</translation>
</message>
<message>
- <source>ORIENTATION</source>
- <translation>Orientation</translation>
+ <source>VOLUME_NORMAL</source>
+ <translation>Normal:</translation>
</message>
-</context>
-<context>
- <name>SMESHGUI_ReorientFacesOp</name>
<message>
- <source>NO_OBJECT_SELECTED</source>
- <translation>No object selected</translation>
+ <source>VOLUME_REVERSED</source>
+ <translation>Reversed:</translation>
</message>
<message>
- <source>NO_FACES</source>
- <translation>Object includes no faces</translation>
+ <source>SIZE</source>
+ <translation>Size:</translation>
</message>
<message>
- <source>ZERO_SIZE_VECTOR</source>
- <translation>Zero size vector</translation>
+ <source>ORIENTATION_SCALE</source>
+ <translation>Scale:</translation>
</message>
<message>
- <source>INVALID_FACE</source>
- <translation>Not valid face</translation>
+ <source>ORIENTATION_3D</source>
+ <translation>3D vectors</translation>
</message>
<message>
- <source>NB_REORIENTED</source>
- <translation>%1 faces reversed</translation>
+ <source>SHRINK</source>
+ <translation>Shrink coef:</translation>
</message>
</context>
</TS>
<source>PREF_BACKFACE</source>
<translation>Face arrière</translation>
</message>
+ <message>
+ <source>PREF_VOLUME</source>
+ <translation type="unfinished">Volume color</translation>
+ </message>
+ <message>
+ <source>PREF_REVERSEDVOLUME</source>
+ <translation type="unfinished">Reversed volume color</translation>
+ </message>
<message>
<source>PREF_WIREFRAME</source>
<translation>Couleur de contour</translation>
</message>
<message>
<source>PREF_WIDTH</source>
- <translation>Epaisseur</translation>
+ <translation type="unfinished">Line width</translation>
+ </message>
+ <message>
+ <source>PREF_OUTLINE_WIDTH</source>
+ <translation type="unfinished">Outline width</translation>
</message>
<message>
<source>PREF_PREVIEW_CHUNK_SIZE</source>
</message>
</context>
<context>
- <name>SMESHGUI_Preferences_ColorDlg</name>
- <message>
- <source>DIALOG_TITLE</source>
- <translation>Propriétés (couleur, épaisseur des traits, taille des éléments réduits, ...)</translation>
- </message>
- <message>
- <source>GRP_ELEMENTS</source>
- <translation>Eléments</translation>
- </message>
- <message>
- <source>SURFACE_COLOR_LBL</source>
- <translation>Couleur de surface</translation>
- </message>
+ <name>SMESHGUI_ReorientFacesDlg</name>
<message>
- <source>BACKSURFACE_COLOR_LBL</source>
- <translation>Couleur arrière</translation>
+ <source>CAPTION</source>
+ <translation>Réorienter des faces selon un vector</translation>
</message>
<message>
- <source>OUTLINE_COLOR_LBL</source>
- <translation>Couleur de contour</translation>
+ <source>REORIENT_FACES</source>
+ <translation>Réorienter</translation>
</message>
<message>
- <source>WIREFRAME_COLOR_LBL</source>
- <translation>Couleur en mode fil de fer</translation>
+ <source>DIRECTION</source>
+ <translation>Direction</translation>
</message>
<message>
- <source>0D_ELEMENTS_COLOR_LBL</source>
- <translation>Eléments 0D</translation>
+ <source>OBJECT</source>
+ <translation>Objet</translation>
</message>
<message>
- <source>0D_ELEMENTS_SIZE_LBL</source>
- <translation>Taille des éléments 0D</translation>
+ <source>POINT</source>
+ <translation>Point</translation>
</message>
<message>
- <source>BALL_ELEMENTS_COLOR_LBL</source>
- <translation>Eléments particulaires</translation>
+ <source>FACE</source>
+ <translation>Face</translation>
</message>
<message>
- <source>BALL_ELEMENTS_SIZE_LBL</source>
- <translation>Taille des éléments particulaires</translation>
+ <source>FACES</source>
+ <translation>Source des faces</translation>
</message>
<message>
- <source>LINE_WIDTH_LBL</source>
- <translation>Epaisseur des traits</translation>
+ <source>ORIENTATION</source>
+ <translation>Orientation</translation>
</message>
+</context>
+<context>
+ <name>SMESHGUI_ReorientFacesOp</name>
<message>
- <source>SHRINK_COEF_LBL</source>
- <translation>Coef. de contraction</translation>
+ <source>NO_OBJECT_SELECTED</source>
+ <translation>Aucun objet sélectionné</translation>
</message>
<message>
- <source>GRP_NODES</source>
- <translation>Nœuds</translation>
+ <source>NO_FACES</source>
+ <translation>L'objet ne contient pas de faces</translation>
</message>
<message>
- <source>NODES_COLOR_LBL</source>
- <translation>Couleur</translation>
+ <source>ZERO_SIZE_VECTOR</source>
+ <translation>Vecteur de taille nulle</translation>
</message>
<message>
- <source>NODES_MARKER_LBL</source>
- <translation>Marqueur</translation>
+ <source>INVALID_FACE</source>
+ <translation>Face non valide</translation>
</message>
<message>
- <source>GRP_ORIENTATION</source>
- <translation>Orientation des faces</translation>
+ <source>NB_REORIENTED</source>
+ <translation>%1 face(s) inversée(s)</translation>
</message>
+</context>
+<context>
+ <name>SMESHGUI_PropertiesDlg</name>
<message>
- <source>ORIENTATION_COLOR_LBL</source>
- <translation>Couleur</translation>
+ <source>TITLE</source>
+ <translation type="unfinished">Properties</translation>
</message>
<message>
- <source>ORIENTATION_SCALE_LBL</source>
- <translation>Facteur d'échelle</translation>
+ <source>NODES</source>
+ <translation type="unfinished">Nodes</translation>
</message>
<message>
- <source>3D_VECTORS_LBL</source>
- <translation>Vecteurs 3D</translation>
+ <source>EDGES</source>
+ <translation type="unfinished">Edges / wireframe</translation>
</message>
<message>
- <source>GRP_SELECTION</source>
- <translation>Sélection</translation>
+ <source>FACES</source>
+ <translation type="unfinished">Faces</translation>
</message>
<message>
- <source>SELECTION_COLOR_LBL</source>
- <translation>Couleur de sélection</translation>
+ <source>VOLUMES</source>
+ <translation type="unfinished">Volumes</translation>
</message>
<message>
- <source>PRESELECTION_COLOR_LBL</source>
- <translation>Couleur de pré-sélection</translation>
+ <source>OUTLINES</source>
+ <translation type="unfinished">Outlines</translation>
</message>
-</context>
-<context>
- <name>SMESHGUI_ReorientFacesDlg</name>
<message>
- <source>CAPTION</source>
- <translation>Réorienter des faces selon un vector</translation>
+ <source>0D_ELEMENTS</source>
+ <translation type="unfinished">0D elements</translation>
</message>
<message>
- <source>REORIENT_FACES</source>
- <translation>Réorienter</translation>
+ <source>BALLS</source>
+ <translation type="unfinished">Balls</translation>
</message>
<message>
- <source>DIRECTION</source>
- <translation>Direction</translation>
+ <source>ORIENTATIONS</source>
+ <translation type="unfinished">Orientation vectors</translation>
</message>
<message>
- <source>OBJECT</source>
- <translation>Objet</translation>
+ <source>COLOR</source>
+ <translation type="unfinished">Color:</translation>
</message>
<message>
- <source>POINT</source>
- <translation>Point</translation>
+ <source>WIDTH</source>
+ <translation type="unfinished">Width:</translation>
</message>
<message>
- <source>FACE</source>
- <translation>Face</translation>
+ <source>FACE_FRONT</source>
+ <translation type="unfinished">Front:</translation>
</message>
<message>
- <source>FACES</source>
- <translation>Source des faces</translation>
+ <source>FACE_BACK</source>
+ <translation type="unfinished">Back:</translation>
</message>
<message>
- <source>ORIENTATION</source>
- <translation>Orientation</translation>
+ <source>VOLUME_NORMAL</source>
+ <translation type="unfinished">Normal:</translation>
</message>
-</context>
-<context>
- <name>SMESHGUI_ReorientFacesOp</name>
<message>
- <source>NO_OBJECT_SELECTED</source>
- <translation>Aucun objet sélectionné</translation>
+ <source>VOLUME_REVERSED</source>
+ <translation type="unfinished">Reversed:</translation>
</message>
<message>
- <source>NO_FACES</source>
- <translation>L'objet ne contient pas de faces</translation>
+ <source>SIZE</source>
+ <translation type="unfinished">Size:</translation>
</message>
<message>
- <source>ZERO_SIZE_VECTOR</source>
- <translation>Vecteur de taille nulle</translation>
+ <source>ORIENTATION_SCALE</source>
+ <translation type="unfinished">Scale:</translation>
</message>
<message>
- <source>INVALID_FACE</source>
- <translation>Face non valide</translation>
+ <source>ORIENTATION_3D</source>
+ <translation type="unfinished">3D vectors</translation>
</message>
<message>
- <source>NB_REORIENTED</source>
- <translation>%1 face(s) inversée(s)</translation>
+ <source>SHRINK</source>
+ <translation type="unfinished">Shrink coef:</translation>
</message>
</context>
</TS>