mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-27 21:20:34 +05:00
22316: EDF 2719 SMESH: Split hexas into prisms
namespace SMESH { enum SMESHGUI_FilterType { QuadFilter = 5, TriaFilter = 6, + FirstGeometryTypeFilter, + FirstEntityTypeFilter = FirstGeometryTypeFilter + SMDSGeom_NONE, + LastFilter = FirstEntityTypeFilter + SMDSEntity_Last }; }; +class SMESHGUI_VolumeShapeFilter : public SMESHGUI_Filter +{
This commit is contained in:
parent
b9b3af112d
commit
74b03c9f40
@ -51,6 +51,9 @@ IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_FacesFilter, SMESHGUI_Filter)
|
|||||||
IMPLEMENT_STANDARD_HANDLE(SMESHGUI_VolumesFilter, SMESHGUI_Filter)
|
IMPLEMENT_STANDARD_HANDLE(SMESHGUI_VolumesFilter, SMESHGUI_Filter)
|
||||||
IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_VolumesFilter, SMESHGUI_Filter)
|
IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_VolumesFilter, SMESHGUI_Filter)
|
||||||
|
|
||||||
|
IMPLEMENT_STANDARD_HANDLE(SMESHGUI_VolumeShapeFilter, SMESHGUI_Filter)
|
||||||
|
IMPLEMENT_STANDARD_RTTIEXT(SMESHGUI_VolumeShapeFilter, SMESHGUI_Filter)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Class : SMESHGUI_PredicateFilter
|
Class : SMESHGUI_PredicateFilter
|
||||||
Description : Selection filter for VTK viewer. This class aggregate object
|
Description : Selection filter for VTK viewer. This class aggregate object
|
||||||
@ -492,3 +495,86 @@ bool SMESHGUI_VolumesFilter::IsNodeFilter() const
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Class : SMESHGUI_VolumeShapeFilter
|
||||||
|
Description : Verify whether selected cell is a volume of a certain shape
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
// name : SMESHGUI_VolumeShapeFilter::SMESHGUI_VolumeShapeFilter
|
||||||
|
// Purpose : Constructor
|
||||||
|
//=======================================================================
|
||||||
|
SMESHGUI_VolumeShapeFilter::SMESHGUI_VolumeShapeFilter(const SMDSAbs_GeometryType shape)
|
||||||
|
: SMESHGUI_Filter(), myGeometryType( shape )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
// name : SMESHGUI_VolumeShapeFilter::IsValid
|
||||||
|
// Purpose : Verify whether selected cell is a volume of a certain shape
|
||||||
|
//=======================================================================
|
||||||
|
bool SMESHGUI_VolumeShapeFilter::IsValid( const int theCellId ) const
|
||||||
|
{
|
||||||
|
if ( myActor == 0 || theCellId < 1 )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
SMESH_Actor* anActor = dynamic_cast< SMESH_Actor* >( myActor );
|
||||||
|
if ( !anActor || anActor->GetObject() == 0 )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
|
||||||
|
const SMDS_MeshElement* anElem = aMesh->FindElement( anActor->GetElemObjId( theCellId ) );
|
||||||
|
|
||||||
|
return anElem && anElem->GetGeomType() == myGeometryType;
|
||||||
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
// name : SMESHGUI_VolumeShapeFilter::IsValid
|
||||||
|
// Purpose : Verify whether selected cell is volume
|
||||||
|
//=======================================================================
|
||||||
|
bool SMESHGUI_VolumeShapeFilter::IsObjValid( const int theObjId ) const
|
||||||
|
{
|
||||||
|
if ( myActor == 0 )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
SMESH_Actor* anActor = dynamic_cast< SMESH_Actor* >( myActor );
|
||||||
|
if ( !anActor || anActor->GetObject() == 0 )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
|
||||||
|
const SMDS_MeshElement* anElem = aMesh->FindElement( theObjId );
|
||||||
|
|
||||||
|
return anElem && anElem->GetGeomType() == myGeometryType;
|
||||||
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
// name : SMESHGUI_VolumeShapeFilter::GetId
|
||||||
|
// Purpose : Get ID of the filter. Must return value from SMESHGUI_FilterType
|
||||||
|
// enumeration. All filters must have different ids
|
||||||
|
//=======================================================================
|
||||||
|
int SMESHGUI_VolumeShapeFilter::GetId() const
|
||||||
|
{
|
||||||
|
return GetId( myGeometryType );
|
||||||
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
//function : GetId
|
||||||
|
//purpose : Compose filter ID basing on
|
||||||
|
//=======================================================================
|
||||||
|
|
||||||
|
int SMESHGUI_VolumeShapeFilter::GetId( SMDSAbs_GeometryType shape )
|
||||||
|
{
|
||||||
|
return SMESH::FirstGeometryTypeFilter + shape;
|
||||||
|
}
|
||||||
|
|
||||||
|
//=======================================================================
|
||||||
|
// name : SMESHGUI_VolumeShapeFilter::IsNodeFilter
|
||||||
|
// Purpose : Returns true if filter is intended for nodes
|
||||||
|
//=======================================================================
|
||||||
|
bool SMESHGUI_VolumeShapeFilter::IsNodeFilter() const
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
// SMESH includes
|
// SMESH includes
|
||||||
#include "SMESH_SMESHGUI.hxx"
|
#include "SMESH_SMESHGUI.hxx"
|
||||||
|
#include "SMDSAbs_ElementType.hxx"
|
||||||
|
|
||||||
// SALOME GUI includes
|
// SALOME GUI includes
|
||||||
#include <VTKViewer_Filter.h>
|
#include <VTKViewer_Filter.h>
|
||||||
@ -42,15 +43,17 @@ class SALOME_Actor;
|
|||||||
namespace SMESH
|
namespace SMESH
|
||||||
{
|
{
|
||||||
enum SMESHGUI_FilterType {
|
enum SMESHGUI_FilterType {
|
||||||
UnknownFilter = -1,
|
UnknownFilter = -1,
|
||||||
NodeFilter = 0,
|
NodeFilter = 0,
|
||||||
EdgeFilter = 1,
|
EdgeFilter = 1,
|
||||||
FaceFilter = 2,
|
FaceFilter = 2,
|
||||||
VolumeFilter = 3,
|
VolumeFilter = 3,
|
||||||
AllElementsFilter = 4,
|
AllElementsFilter = 4,
|
||||||
QuadFilter = 5,
|
QuadFilter = 5,
|
||||||
TriaFilter = 6,
|
TriaFilter = 6,
|
||||||
LastFilter
|
FirstGeometryTypeFilter,
|
||||||
|
FirstEntityTypeFilter = FirstGeometryTypeFilter + SMDSGeom_NONE,
|
||||||
|
LastFilter = FirstEntityTypeFilter + SMDSEntity_Last
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -181,10 +184,34 @@ public:
|
|||||||
Standard_EXPORT virtual bool IsValid( const int ) const;
|
Standard_EXPORT virtual bool IsValid( const int ) const;
|
||||||
Standard_EXPORT virtual bool IsObjValid( const int ) const;
|
Standard_EXPORT virtual bool IsObjValid( const int ) const;
|
||||||
Standard_EXPORT virtual int GetId() const;
|
Standard_EXPORT virtual int GetId() const;
|
||||||
Standard_EXPORT virtual bool IsNodeFilter() const;
|
Standard_EXPORT virtual bool IsNodeFilter() const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DEFINE_STANDARD_RTTI(SMESHGUI_VolumesFilter)
|
DEFINE_STANDARD_RTTI(SMESHGUI_VolumesFilter)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
Class : SMESHGUI_VolumeShapeFilter
|
||||||
|
Description : Verify whether selected cell is a volume of a certain shape
|
||||||
|
*/
|
||||||
|
|
||||||
|
DEFINE_STANDARD_HANDLE(SMESHGUI_VolumeShapeFilter, SMESHGUI_Filter)
|
||||||
|
|
||||||
|
class SMESHGUI_VolumeShapeFilter : public SMESHGUI_Filter
|
||||||
|
{
|
||||||
|
SMDSAbs_GeometryType myGeometryType;
|
||||||
|
public:
|
||||||
|
Standard_EXPORT SMESHGUI_VolumeShapeFilter(const SMDSAbs_GeometryType shape);
|
||||||
|
|
||||||
|
Standard_EXPORT virtual bool IsValid( const int ) const;
|
||||||
|
Standard_EXPORT virtual bool IsObjValid( const int ) const;
|
||||||
|
Standard_EXPORT virtual int GetId() const;
|
||||||
|
Standard_EXPORT virtual bool IsNodeFilter() const;
|
||||||
|
|
||||||
|
Standard_EXPORT static int GetId( SMDSAbs_GeometryType geom );
|
||||||
|
|
||||||
|
public:
|
||||||
|
DEFINE_STANDARD_RTTI(SMESHGUI_VolumeShapeFilter)
|
||||||
|
};
|
||||||
|
|
||||||
#endif // SMESHGUI_FILTER_H
|
#endif // SMESHGUI_FILTER_H
|
||||||
|
Loading…
Reference in New Issue
Block a user