-// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2014 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.
+// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// 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 SMESH_I : idl implementation based on 'SMESH' unit's calsses
// File : SMESH_Filter_i.hxx
#include <list>
-class SMESHDS_Mesh;
-
namespace SMESH
{
-
- // ================================================================================
- namespace Controls
- {
-
- /*
- Class : BelongToGeom
- Description : Predicate for verifying whether entiy belong to
- specified geometrical support
- */
- class SMESH_I_EXPORT BelongToGeom: public virtual Predicate
- {
- public:
- BelongToGeom();
-
- virtual void SetMesh( const SMDS_Mesh* theMesh );
- virtual void SetGeom( const TopoDS_Shape& theShape );
-
- virtual bool IsSatisfy( long theElementId );
-
- virtual void SetType( SMDSAbs_ElementType theType );
- virtual SMDSAbs_ElementType GetType() const;
-
- TopoDS_Shape GetShape();
- const SMESHDS_Mesh* GetMeshDS() const;
-
- void SetTolerance( double );
- double GetTolerance();
-
- private:
- virtual void init();
-
- TopoDS_Shape myShape;
- const SMESHDS_Mesh* myMeshDS;
- SMDSAbs_ElementType myType;
- bool myIsSubshape;
- double myTolerance; // only if myIsSubshape == false
- Controls::ElementsOnShapePtr myElementsOnShapePtr; // only if myIsSubshape == false
- };
- typedef boost::shared_ptr<BelongToGeom> BelongToGeomPtr;
-
- /*
- Class : LyingOnGeom
- Description : Predicate for verifying whether entiy lying or partially lying on
- specified geometrical support
- */
- class SMESH_I_EXPORT LyingOnGeom: public virtual Predicate
- {
- public:
- LyingOnGeom();
-
- virtual void SetMesh( const SMDS_Mesh* theMesh );
- virtual void SetGeom( const TopoDS_Shape& theShape );
-
- virtual bool IsSatisfy( long theElementId );
-
- virtual void SetType( SMDSAbs_ElementType theType );
- virtual SMDSAbs_ElementType GetType() const;
-
- TopoDS_Shape GetShape();
- const SMESHDS_Mesh* GetMeshDS() const;
-
- void SetTolerance( double );
- double GetTolerance();
-
- virtual bool Contains( const SMESHDS_Mesh* theMeshDS,
- const TopoDS_Shape& theShape,
- const SMDS_MeshElement* theElem,
- TopAbs_ShapeEnum theFindShapeEnum,
- TopAbs_ShapeEnum theAvoidShapeEnum = TopAbs_SHAPE );
- private:
- virtual void init();
-
- TopoDS_Shape myShape;
- const SMESHDS_Mesh* myMeshDS;
- SMDSAbs_ElementType myType;
- bool myIsSubshape;
- double myTolerance; // only if myIsSubshape == false
- Controls::ElementsOnShapePtr myElementsOnShapePtr; // only if myIsSubshape == false
- };
- typedef boost::shared_ptr<LyingOnGeom> LyingOnGeomPtr;
-
- } // namespace Controls
-
// ================================================================================
/*
FUNCTORS
public virtual SALOME::GenericObj_i
{
public:
- void SetMesh( SMESH_Mesh_ptr theMesh );
- Controls::FunctorPtr GetFunctor(){ return myFunctorPtr;}
+ virtual void SetMesh( SMESH_Mesh_ptr theMesh );
+ Controls::FunctorPtr GetFunctor() { return myFunctorPtr; }
ElementType GetElementType();
-
+
protected:
Functor_i();
~Functor_i();
{
public:
CORBA::Double GetValue( CORBA::Long theElementId );
- SMESH::Histogram* GetHistogram(CORBA::Short nbIntervals, CORBA::Boolean isLogarithmic);
+ SMESH::Histogram* GetHistogram(CORBA::Short nbIntervals,
+ CORBA::Boolean isLogarithmic);
+ SMESH::Histogram* GetLocalHistogram(CORBA::Short nbIntervals,
+ CORBA::Boolean isLogarithmic,
+ SMESH::SMESH_IDSource_ptr object);
void SetPrecision( CORBA::Long thePrecision );
CORBA::Long GetPrecision();
Controls::NumericalFunctorPtr GetNumericalFunctor();
Controls::Length2DPtr myLength2DPtr;
};
-
/*
Class : MultiConnection_i
Description : Functor for calculating number of faces conneted to the edge
{
public:
CORBA::Boolean IsSatisfy( CORBA::Long theElementId );
+ CORBA::Long NbSatisfying( SMESH::SMESH_IDSource_ptr obj );
Controls::PredicatePtr GetPredicate();
protected:
OverConstrainedFace_i();
FunctorType GetFunctorType();
};
-
+
/*
Class : BelongToGeom_i
Description : Predicate for selection on geometrical support
private:
Controls::ElemGeomTypePtr myElemGeomTypePtr;
};
+
+ /*
+ Class : ElemEntityType_i
+ Description : Functor for check element entity type
+ */
+ class SMESH_I_EXPORT ElemEntityType_i: public virtual POA_SMESH::ElemEntityType,
+ public virtual Predicate_i
+ {
+ public:
+ ElemEntityType_i();
+ FunctorType GetFunctorType();
+
+ void SetElementType ( ElementType theType );
+ void SetEntityType( EntityType theEntityType );
+ EntityType GetEntityType() const;
+
+ private:
+ Controls::ElemEntityTypePtr myElemEntityTypePtr;
+ };
/*
Class : CoplanarFaces_i
private:
Controls::CoplanarFacesPtr myCoplanarFacesPtr;
};
+
+ /*
+ * Class : ConnectedElements_i
+ * Description : Returns true if an element is connected via other elements to the element
+ * located at a given point.
+ */
+ class SMESH_I_EXPORT ConnectedElements_i: public virtual POA_SMESH::ConnectedElements,
+ public virtual Predicate_i
+ {
+ public:
+ ConnectedElements_i();
+ FunctorType GetFunctorType();
+
+ void SetElementType( ElementType theType );
+ void SetPoint( CORBA::Double x, CORBA::Double y, CORBA::Double z );
+ void SetVertex( GEOM::GEOM_Object_ptr vertex )
+ throw (SALOME::SALOME_Exception);
+ void SetNode ( CORBA::Long nodeID )
+ throw (SALOME::SALOME_Exception);
+ void SetThreshold ( const char* threshold,
+ SMESH::ConnectedElements::ThresholdType type )
+ throw (SALOME::SALOME_Exception);
+ char* GetThreshold ( SMESH::ConnectedElements::ThresholdType& type );
+
+ private:
+ Controls::ConnectedElementsPtr myConnectedElementsPtr;
+ std::string myVertexID;
+ };
/*
Class : Comparator_i
// =========================
virtual SMESH::long_array* GetIDs();
virtual SMESH::long_array* GetMeshInfo();
+ virtual SMESH::long_array* GetNbElementsByType();
virtual SMESH::array_of_ElementType* GetTypes();
virtual SMESH::SMESH_Mesh_ptr GetMesh();
virtual bool IsMeshInfoCorrect() { return true; }
LinearOrQuadratic_ptr CreateLinearOrQuadratic();
GroupColor_ptr CreateGroupColor();
ElemGeomType_ptr CreateElemGeomType();
+ ElemEntityType_ptr CreateElemEntityType();
CoplanarFaces_ptr CreateCoplanarFaces();
+ ConnectedElements_ptr CreateConnectedElements();
LessThan_ptr CreateLessThan();
MoreThan_ptr CreateMoreThan();