Fix for the "0020314: EDF 993 SMESH : Display bug with Volumes created by GHS3D" issue (problem with displaying coincident 3D elements).

This commit is contained in:
rnv 2012-02-20 12:21:17 +00:00
parent 7c156331ce
commit cfddf61e77
3 changed files with 19 additions and 0 deletions

View File

@ -203,6 +203,7 @@ SMESH_ActorDef::SMESH_ActorDef()
my3DActor->SetProperty(mySurfaceProp);
my3DActor->SetBackfaceProperty(myBackSurfaceProp);
my3DActor->SetRepresentation(SMESH_DeviceActor::eSurface);
my3DActor->SetCoincident3DAllowed(true);
aFilter = my3DActor->GetExtractUnstructuredGrid();
aFilter->SetModeOfChanging(VTKViewer_ExtractUnstructuredGrid::eAdding);
aFilter->RegisterCellsWithType(VTK_TETRA);
@ -228,6 +229,7 @@ SMESH_ActorDef::SMESH_ActorDef()
my3DExtActor->SetProperty(my2DExtProp);
my3DExtActor->SetBackfaceProperty(my2DExtProp);
my3DExtActor->SetRepresentation(SMESH_DeviceActor::eSurface);
my3DExtActor->SetCoincident3DAllowed(true);
aFilter = my3DExtActor->GetExtractUnstructuredGrid();
aFilter->SetModeOfChanging(VTKViewer_ExtractUnstructuredGrid::eAdding);
aFilter->RegisterCellsWithType(VTK_TETRA);
@ -411,6 +413,7 @@ SMESH_ActorDef::SMESH_ActorDef()
myHighlitableActor->SetUserMatrix(aMatrix);
myHighlitableActor->PickableOff();
myHighlitableActor->SetRepresentation(SMESH_DeviceActor::eWireframe);
myHighlitableActor->SetCoincident3DAllowed(true);
aMatrix->Delete();

View File

@ -972,3 +972,11 @@ int SMESH_DeviceActor::GetMarkerTexture()
{
return myMapper->GetMarkerTexture();
}
void SMESH_DeviceActor::SetCoincident3DAllowed(bool theFlag) {
myGeomFilter->SetAppendCoincident3D(theFlag);
}
bool SMESH_DeviceActor::IsCoincident3DAllowed() const {
return myGeomFilter->GetAppendCoincident3D();
}

View File

@ -130,6 +130,14 @@ class SMESHOBJECT_EXPORT SMESH_DeviceActor: public vtkLODActor{
bool IsHighlited() { return myIsHighlited;}
void SetHighlited(bool theIsHighlited);
virtual
void
SetCoincident3DAllowed(bool theIsFeatureEdgesAllowed);
virtual
bool
IsCoincident3DAllowed() const;
virtual void Render(vtkRenderer *, vtkMapper *);
void SetImplicitFunctionUsed(bool theIsImplicitFunctionUsed);