mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-02-05 19:04:17 +05:00
0020948: EDF 1468 SMESH: Histogram of the quality controls
+ virtual void SMESH_Actor::UpdateDistribution() = 0; 0020944: EDF 1464 SMESH: detection of over-constrained elements + class OverConstrainedVolume: public Predicate + class OverConstrainedFace: public Predicate
This commit is contained in:
parent
cddf6847bc
commit
ebe0faaad0
@ -779,6 +779,10 @@ SetControlMode(eControl theMode,
|
|||||||
myFunctor.reset(new SMESH::Controls::BareBorderFace());
|
myFunctor.reset(new SMESH::Controls::BareBorderFace());
|
||||||
myControlActor = my2DActor;
|
myControlActor = my2DActor;
|
||||||
break;
|
break;
|
||||||
|
case eOverConstrainedFace:
|
||||||
|
myFunctor.reset(new SMESH::Controls::OverConstrainedFace());
|
||||||
|
myControlActor = my2DActor;
|
||||||
|
break;
|
||||||
case eMultiConnection:
|
case eMultiConnection:
|
||||||
myFunctor.reset(new SMESH::Controls::MultiConnection());
|
myFunctor.reset(new SMESH::Controls::MultiConnection());
|
||||||
myControlActor = my1DActor;
|
myControlActor = my1DActor;
|
||||||
@ -849,6 +853,12 @@ SetControlMode(eControl theMode,
|
|||||||
myControlActor = my3DActor;
|
myControlActor = my3DActor;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case eOverConstrainedVolume:
|
||||||
|
{
|
||||||
|
myFunctor.reset(new SMESH::Controls::OverConstrainedVolume());
|
||||||
|
myControlActor = my3DActor;
|
||||||
|
break;
|
||||||
|
}
|
||||||
case eMinimumAngle:
|
case eMinimumAngle:
|
||||||
{
|
{
|
||||||
SMESH::Controls::MinimumAngle* aControl = new SMESH::Controls::MinimumAngle();
|
SMESH::Controls::MinimumAngle* aControl = new SMESH::Controls::MinimumAngle();
|
||||||
@ -890,20 +900,22 @@ SetControlMode(eControl theMode,
|
|||||||
my1DExtActor->SetExtControlMode(myFunctor);
|
my1DExtActor->SetExtControlMode(myFunctor);
|
||||||
break;
|
break;
|
||||||
case eFreeFaces:
|
case eFreeFaces:
|
||||||
my2DExtActor->SetExtControlMode(myFunctor);
|
|
||||||
break;
|
|
||||||
case eBareBorderFace:
|
case eBareBorderFace:
|
||||||
|
case eOverConstrainedFace:
|
||||||
my2DExtActor->SetExtControlMode(myFunctor);
|
my2DExtActor->SetExtControlMode(myFunctor);
|
||||||
break;
|
break;
|
||||||
case eBareBorderVolume:
|
case eBareBorderVolume:
|
||||||
|
case eOverConstrainedVolume:
|
||||||
my3DExtActor->SetExtControlMode(myFunctor);
|
my3DExtActor->SetExtControlMode(myFunctor);
|
||||||
break;
|
break;
|
||||||
case eLength2D:
|
case eLength2D:
|
||||||
case eMultiConnection2D:
|
case eMultiConnection2D:
|
||||||
my1DExtActor->SetExtControlMode(myFunctor,myScalarBarActor,myLookupTable);
|
my1DExtActor->SetExtControlMode(myFunctor,myScalarBarActor,myLookupTable);
|
||||||
|
UpdateDistribution();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
myControlActor->SetControlMode(myFunctor,myScalarBarActor,myLookupTable);
|
myControlActor->SetControlMode(myFunctor,myScalarBarActor,myLookupTable);
|
||||||
|
UpdateDistribution();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1268,9 +1280,11 @@ void SMESH_ActorDef::SetVisibility(int theMode, bool theIsUpdateRepersentation){
|
|||||||
break;
|
break;
|
||||||
case eFreeFaces:
|
case eFreeFaces:
|
||||||
case eBareBorderFace:
|
case eBareBorderFace:
|
||||||
|
case eOverConstrainedFace:
|
||||||
my2DExtActor->VisibilityOn();
|
my2DExtActor->VisibilityOn();
|
||||||
break;
|
break;
|
||||||
case eBareBorderVolume:
|
case eBareBorderVolume:
|
||||||
|
case eOverConstrainedVolume:
|
||||||
my3DExtActor->VisibilityOn();
|
my3DExtActor->VisibilityOn();
|
||||||
break;
|
break;
|
||||||
case eLength2D:
|
case eLength2D:
|
||||||
@ -1998,7 +2012,7 @@ void SMESH_ActorDef::UpdateScalarBar()
|
|||||||
myScalarBarActor->SetDistributionColoringType(coloringType);
|
myScalarBarActor->SetDistributionColoringType(coloringType);
|
||||||
|
|
||||||
QColor distributionColor = mgr->colorValue("SMESH", "distribution_color",
|
QColor distributionColor = mgr->colorValue("SMESH", "distribution_color",
|
||||||
QColor(255, 255, 255));
|
QColor(255, 255, 255));
|
||||||
double rgb[3];
|
double rgb[3];
|
||||||
rgb[0]= distributionColor.red()/255.;
|
rgb[0]= distributionColor.red()/255.;
|
||||||
rgb[1]= distributionColor.green()/255.;
|
rgb[1]= distributionColor.green()/255.;
|
||||||
@ -2008,6 +2022,25 @@ void SMESH_ActorDef::UpdateScalarBar()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SMESH_ActorDef::UpdateDistribution()
|
||||||
|
{
|
||||||
|
if(SMESH::Controls::NumericalFunctor* fun =
|
||||||
|
dynamic_cast<SMESH::Controls::NumericalFunctor*>(myFunctor.get()))
|
||||||
|
{
|
||||||
|
int nbIntervals = myScalarBarActor->GetMaximumNumberOfColors();
|
||||||
|
std::vector<int> nbEvents;
|
||||||
|
std::vector<double> funValues;
|
||||||
|
SMESH_VisualObjDef::TEntityList elems;
|
||||||
|
if ( ! dynamic_cast<SMESH_MeshObj*>(myVisualObj.get()))
|
||||||
|
dynamic_cast<SMESH_VisualObjDef*>(myVisualObj.get())->GetEntities( fun->GetType(), elems );
|
||||||
|
std::vector<int> elemIds;
|
||||||
|
for ( SMESH_VisualObjDef::TEntityList::iterator e = elems.begin(); e != elems.end(); ++e)
|
||||||
|
elemIds.push_back( (*e)->GetID());
|
||||||
|
fun->GetHistogram(nbIntervals, nbEvents, funValues, elemIds);
|
||||||
|
myScalarBarActor->SetDistribution(nbEvents);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void SMESH_ActorDef::SetQuadratic2DRepresentation(EQuadratic2DRepresentation theMode)
|
void SMESH_ActorDef::SetQuadratic2DRepresentation(EQuadratic2DRepresentation theMode)
|
||||||
{
|
{
|
||||||
switch(theMode) {
|
switch(theMode) {
|
||||||
|
@ -123,7 +123,8 @@ class SMESHOBJECT_EXPORT SMESH_Actor: public SALOME_Actor
|
|||||||
enum eControl{eNone, eLength, eLength2D, eFreeBorders, eFreeEdges, eFreeNodes,
|
enum eControl{eNone, eLength, eLength2D, eFreeBorders, eFreeEdges, eFreeNodes,
|
||||||
eFreeFaces, eMultiConnection, eArea, eTaper, eAspectRatio,
|
eFreeFaces, eMultiConnection, eArea, eTaper, eAspectRatio,
|
||||||
eMinimumAngle, eWarping, eSkew, eAspectRatio3D, eMultiConnection2D, eVolume3D,
|
eMinimumAngle, eWarping, eSkew, eAspectRatio3D, eMultiConnection2D, eVolume3D,
|
||||||
eMaxElementLength2D, eMaxElementLength3D, eBareBorderFace, eBareBorderVolume};
|
eMaxElementLength2D, eMaxElementLength3D, eBareBorderFace, eBareBorderVolume,
|
||||||
|
eOverConstrainedFace, eOverConstrainedVolume};
|
||||||
virtual void SetControlMode(eControl theMode) = 0;
|
virtual void SetControlMode(eControl theMode) = 0;
|
||||||
virtual eControl GetControlMode() = 0;
|
virtual eControl GetControlMode() = 0;
|
||||||
virtual SMESH::Controls::FunctorPtr GetFunctor() = 0;
|
virtual SMESH::Controls::FunctorPtr GetFunctor() = 0;
|
||||||
@ -141,6 +142,7 @@ class SMESHOBJECT_EXPORT SMESH_Actor: public SALOME_Actor
|
|||||||
virtual long GetControlsPrecision() const = 0;
|
virtual long GetControlsPrecision() const = 0;
|
||||||
|
|
||||||
virtual void UpdateScalarBar() = 0;
|
virtual void UpdateScalarBar() = 0;
|
||||||
|
virtual void UpdateDistribution() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -196,6 +196,7 @@ class SMESH_ActorDef : public SMESH_Actor
|
|||||||
virtual long GetControlsPrecision() const { return myControlsPrecision; }
|
virtual long GetControlsPrecision() const { return myControlsPrecision; }
|
||||||
|
|
||||||
virtual void UpdateScalarBar();
|
virtual void UpdateScalarBar();
|
||||||
|
virtual void UpdateDistribution();
|
||||||
|
|
||||||
|
|
||||||
virtual void SetQuadratic2DRepresentation(EQuadratic2DRepresentation);
|
virtual void SetQuadratic2DRepresentation(EQuadratic2DRepresentation);
|
||||||
|
Loading…
Reference in New Issue
Block a user