return;
}
case 1132:{
- QColor c, e, b, n, c0D, o;
+ QColor c, e, b, n, c0D, o, outl, selection, preselection;
int delta;
int size0D = 0;
int Edgewidth = 0;
c2 = int (color0D[2] * 255);
c0D.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;
aDlg->SetColor(1, c);
aDlg->SetColor(2, e);
aDlg->SetColor(3, n);
+ aDlg->SetColor(4, outl);
aDlg->SetDeltaBrightness(delta);
aDlg->SetColor(5, c0D);
aDlg->SetColor(6, o);
aDlg->SetIntValue(3, size0D);
aDlg->SetDoubleValue(1, faces_orientation_scale);
aDlg->SetBooleanValue(1, faces_orientation_3dvectors);
+ aDlg->SetColor(7, selection);
+ aDlg->SetColor(8, preselection);
aDlg->setCustomMarkerMap( theMarkerMap[ aStudy->StudyId() ] );
QColor color = aDlg->GetColor(1);
QColor edgecolor = aDlg->GetColor(2);
QColor nodecolor = aDlg->GetColor(3);
- QColor backfacecolor = aDlg->GetColor(4);
+ QColor outlinecolor = aDlg->GetColor(4);
QColor color0D = aDlg->GetColor(5);
QColor faces_orientation_color = aDlg->GetColor(6);
+ QColor selectioncolor = aDlg->GetColor(7);
+ QColor preSelectioncolor = aDlg->GetColor(8);
int delta = aDlg->GetDeltaBrightness();
/* Point marker */
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.);
setPreferenceProperty( notifyMode, "indexes", indices );
int infoGroup = addPreference( tr( "PREF_GROUP_INFO" ), genTab );
- setPreferenceProperty( computeGroup, "columns", 2 );
+ setPreferenceProperty( computeGroup, "columns", 4 );
int elemInfo = addPreference( tr( "PREF_ELEM_INFO" ), infoGroup, LightApp_Preferences::Selector, "SMESH", "mesh_elem_info" );
modes.clear();
modes.append( tr( "PREF_ELEM_INFO_SIMPLE" ) );
indices.append( 1 );
setPreferenceProperty( elemInfo, "strings", modes );
setPreferenceProperty( elemInfo, "indexes", indices );
+ int nodesLim = addPreference( tr( "PREF_GPP_NODES_LIMIT" ), infoGroup, LightApp_Preferences::IntSpin, "SMESH", "info_groups_nodes_limit" );
+ setPreferenceProperty( nodesLim, "min", 0 );
+ setPreferenceProperty( nodesLim, "max", 10000000 );
+ setPreferenceProperty( nodesLim, "step", 10000 );
+ setPreferenceProperty( nodesLim, "special", tr( "PREF_UPDATE_LIMIT_NOLIMIT" ) );
int segGroup = addPreference( tr( "PREF_GROUP_SEGMENT_LENGTH" ), genTab );
setPreferenceProperty( segGroup, "columns", 2 );
setPreferenceProperty( elemGroup, "columns", 2 );
int ColorId = addPreference( tr( "PREF_FILL" ), elemGroup, LightApp_Preferences::BiColor, "SMESH", "fill_color" );
- addPreference( tr( "PREF_OUTLINE" ), elemGroup, LightApp_Preferences::Color, "SMESH", "outline_color" );
addPreference( tr( "PREF_COLOR_0D" ), elemGroup, LightApp_Preferences::Color, "SMESH", "elem0d_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") );
addPreference( tr( "PREF_GRP_NAMES" ), grpGroup, LightApp_Preferences::Color, "SMESH", "group_name_color" );
- //int sp = addPreference( "", elemGroup, LightApp_Preferences::Space );
- //setPreferenceProperty( sp, "hstretch", 0 );
- //setPreferenceProperty( sp, "vstretch", 0 );
-
int size0d = addPreference(tr("PREF_SIZE_0D"), elemGroup,
LightApp_Preferences::IntSpin, "SMESH", "elem0d_size");
- int sp = addPreference( "", elemGroup, LightApp_Preferences::Space );
int elemW = addPreference(tr("PREF_WIDTH"), elemGroup,
LightApp_Preferences::IntSpin, "SMESH", "element_width");
int shrink = addPreference(tr("PREF_SHRINK_COEFF"), elemGroup,
setPreferenceProperty( size0d, "min", 1 );
setPreferenceProperty( size0d, "max", 10 );
- setPreferenceProperty( sp, "hstretch", 0 );
- setPreferenceProperty( sp, "vstretch", 0 );
-
setPreferenceProperty( elemW, "min", 1 );
setPreferenceProperty( elemW, "max", 5 );
colorStr += gDigitsSep; colorStr += QString::number(g);
colorStr += gDigitsSep; colorStr += QString::number(b);
+ aSmeshActor->GetOutlineColor(r, g, b);
+ colorStr += gDigitsSep; colorStr += "outline";
+ colorStr += gDigitsSep; colorStr += QString::number(r);
+ colorStr += gDigitsSep; colorStr += QString::number(g);
+ colorStr += gDigitsSep; colorStr += QString::number(b);
+
param = vtkParam + "Colors";
ip->setParameter(entry, param, colorStr.toLatin1().data());
// Colors
else if (paramNameStr == "Colors") {
QStringList colors = val.split(gDigitsSep, QString::SkipEmptyParts);
- if (colors.count() == 16 || colors.count() == 14 ) {
+ if (colors.count() == 16 || colors.count() == 18 ) {
if (colors[0] != "surface" || colors[4] != "backsurface" ||
- (colors[8] != "edge" && colors[6] != "edge" ) || (colors[12] != "node" && colors[10] != "node")) {
+ (colors[8] != "edge" && colors[6] != "edge" ) || (colors[12] != "node" && colors[10] != "node") ||
+ (colors.count() == 18 && colors[14] != "outline")) {
MESSAGE("Invalid order of data in Colors, must be: "
- "surface:r:g:b:backsurface:r:g:b:edge:r:g:b:node:r:g:b or surface:r:g:b:backsurface:delta:edge:r:g:b:node:r:g:b");
+ "surface:r:g:b:backsurface:r:g:b:edge:r:g:b:node:r:g:b or surface:r:g:b:backsurface:delta:edge:r:g:b:node:r:g:b:outline:r:g:b");
}
else {
int delta = 0;
float er,eg,eb;
float nr,ng,nb;
+ vtkFloatingPointType otr,otg,otb;
//Old case backsurface color is independent
if( colors.count() == 16 ) {
QColor ffc;
nr = colors[13].toFloat();
ng = colors[14].toFloat();
nb = colors[15].toFloat();
+ SMESH::GetColor("SMESH", "outline_color", otr, otg, otb, QColor( 0, 70, 0 ) );
} else {
//New case backsurface color depends on surface color
delta = colors[5].toInt();
nr = colors[11].toFloat();
ng = colors[12].toFloat();
nb = colors[13].toFloat();
+
+ otr = colors[15].toFloat();
+ otg = colors[16].toFloat();
+ otb = colors[17].toFloat();
}
aSmeshActor->SetSufaceColor(colors[1].toFloat(), colors[2].toFloat(), colors[3].toFloat(), delta);
aSmeshActor->SetEdgeColor(er,eg,eb);
aSmeshActor->SetNodeColor(nr,ng,nb);
+ aSmeshActor->SetOutlineColor(otr,otg,otb);
}
}
}