Version: 6.3.1
Public Member Functions | Data Fields

SMESH_HypoFilter.IsMoreLocalThanPredicate Struct Reference

#include <SMESH_HypoFilter.hxx>

Inheritance diagram for SMESH_HypoFilter.IsMoreLocalThanPredicate:
Inheritance graph
[legend]

Public Member Functions

 IsMoreLocalThanPredicate (const TopoDS_Shape &shape)
bool IsOk (const SMESH_Hypothesis *aHyp, const TopoDS_Shape &aShape) const

Data Fields

TopoDS_Shape _shape

Detailed Description

Definition at line 171 of file SMESH_HypoFilter.hxx.


Constructor & Destructor Documentation

SMESH_HypoFilter.IsMoreLocalThanPredicate.IsMoreLocalThanPredicate ( const TopoDS_Shape &  shape)

Definition at line 173 of file SMESH_HypoFilter.hxx.


Member Function Documentation

bool SMESH_HypoFilter.IsMoreLocalThanPredicate::IsOk ( const SMESH_Hypothesis aHyp,
const TopoDS_Shape &  aShape 
) const [virtual]

Implements SMESH_HypoPredicate.

Definition at line 129 of file SMESH_HypoFilter.cxx.

References SMESH_Gen.GetShapeDim(), IsSubShape(), and SMESH_MesherHelper.IsSubShape().

{
  if ( SMESH_MesherHelper::IsSubShape( aShape, /*mainShape=*/_shape ))
    return true;

  if ( aShape.ShapeType() == TopAbs_COMPOUND && 
       !SMESH_MesherHelper::IsSubShape( _shape, /*mainShape=*/aShape)) // issue 0020963
  {
    for ( int type = TopAbs_SOLID; type < TopAbs_SHAPE; ++type )
      if ( aHyp->GetDim() == SMESH_Gen::GetShapeDim( TopAbs_ShapeEnum( type )))
        for ( TopExp_Explorer exp( aShape, TopAbs_ShapeEnum( type )); exp.More(); exp.Next())
          if ( SMESH_MesherHelper::IsSubShape( exp.Current(), /*mainShape=*/_shape ))
            return true;
  }
  return false;
}

Field Documentation

Definition at line 172 of file SMESH_HypoFilter.hxx.

Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS