#include "SMESH_ControlsDef.hxx"#include <set>#include <limits>#include <BRepAdaptor_Surface.hxx>#include <BRepClass_FaceClassifier.hxx>#include <BRep_Tool.hxx>#include <TopAbs.hxx>#include <TopoDS.hxx>#include <TopoDS_Edge.hxx>#include <TopoDS_Face.hxx>#include <TopoDS_Shape.hxx>#include <TopoDS_Vertex.hxx>#include <TopoDS_Iterator.hxx>#include <Geom_CylindricalSurface.hxx>#include <Geom_Plane.hxx>#include <Geom_Surface.hxx>#include <Precision.hxx>#include <TColStd_MapIteratorOfMapOfInteger.hxx>#include <TColStd_MapOfInteger.hxx>#include <TColStd_SequenceOfAsciiString.hxx>#include <TColgp_Array1OfXYZ.hxx>#include <gp_Ax3.hxx>#include <gp_Cylinder.hxx>#include <gp_Dir.hxx>#include <gp_Pln.hxx>#include <gp_Pnt.hxx>#include <gp_Vec.hxx>#include <gp_XYZ.hxx>#include "SMDS_Mesh.hxx"#include "SMDS_Iterator.hxx"#include "SMDS_MeshElement.hxx"#include "SMDS_MeshNode.hxx"#include "SMDS_VolumeTool.hxx"#include "SMDS_QuadraticFaceOfNodes.hxx"#include "SMDS_QuadraticEdge.hxx"#include "SMESHDS_Mesh.hxx"#include "SMESHDS_GroupBase.hxx"#include <vtkMeshQuality.h>
Go to the source code of this file.
Typedefs | |
| typedef std::set< SMDS_MeshFace * > | TMapOfFacePtr |
Functions | |
| static double | skewAngle (const gp_XYZ &p1, const gp_XYZ &p2, const gp_XYZ &p3) |
| void | UpdateBorders (const FreeEdges::Border &theBorder, FreeEdges::TBorders &theRegistry, FreeEdges::TBorders &theContainer) |
| static bool | isEqual (const Quantity_Color &theColor1, const Quantity_Color &theColor2) |
| template<class TElement , class TIterator , class TPredicate > | |
| void | FillSequence (const TIterator &theIterator, TPredicate &thePredicate, Filter::TIdSequence &theSequence) |
| static void | getLinks (const SMDS_MeshFace *theFace, ManifoldPart::TVectorOfLink &theLinks) |
| typedef std::set<SMDS_MeshFace*> TMapOfFacePtr |
Definition at line 3073 of file SMESH_Controls.cxx.
| void FillSequence | ( | const TIterator & | theIterator, |
| TPredicate & | thePredicate, | ||
| Filter::TIdSequence & | theSequence | ||
| ) |
Definition at line 3013 of file SMESH_Controls.cxx.
References SMDS_MeshElement.GetID().
{
if ( theIterator ) {
while( theIterator->more() ) {
TElement anElem = theIterator->next();
long anId = anElem->GetID();
if ( thePredicate->IsSatisfy( anId ) )
theSequence.push_back( anId );
}
}
}
| static void getLinks | ( | const SMDS_MeshFace * | theFace, |
| ManifoldPart::TVectorOfLink & | theLinks | ||
| ) | [static] |
Definition at line 3216 of file SMESH_Controls.cxx.
References SMDS_MeshElement.NbNodes(), and SMDS_MeshElement.nodesIterator().
Referenced by SMESH.Controls.ManifoldPart.expandBoundary().
{
int aNbNode = theFace->NbNodes();
SMDS_ElemIteratorPtr aNodeItr = theFace->nodesIterator();
int i = 1;
SMDS_MeshNode* aNode = 0;
for ( ; aNodeItr->more() && i <= aNbNode; )
{
SMDS_MeshNode* aN1 = (SMDS_MeshNode*)aNodeItr->next();
if ( i == 1 )
aNode = aN1;
i++;
SMDS_MeshNode* aN2 = ( i >= aNbNode ) ? aNode : (SMDS_MeshNode*)aNodeItr->next();
i++;
ManifoldPart::Link aLink( aN1, aN2 );
theLinks.push_back( aLink );
}
}
| static bool isEqual | ( | const Quantity_Color & | theColor1, |
| const Quantity_Color & | theColor2 | ||
| ) | [static] |
Definition at line 2383 of file SMESH_Controls.cxx.
References SMESH_AdvancedEditor.tol.
Referenced by SMESH.Controls.GroupColor.SetMesh().
{
// tolerance to compare colors
const double tol = 5*1e-3;
return ( fabs( theColor1.Red() - theColor2.Red() ) < tol &&
fabs( theColor1.Green() - theColor2.Green() ) < tol &&
fabs( theColor1.Blue() - theColor2.Blue() ) < tol );
}
| static double skewAngle | ( | const gp_XYZ & | p1, |
| const gp_XYZ & | p2, | ||
| const gp_XYZ & | p3 | ||
| ) | [static] |
Definition at line 1325 of file SMESH_Controls.cxx.
References PAL_MESH_041_mesh.p1, SMESH_fixation.p12, PAL_MESH_041_mesh.p2, and SMESH_fixation.p23.
Referenced by SMESH.Controls.Skew.GetValue().
| void UpdateBorders | ( | const FreeEdges::Border & | theBorder, |
| FreeEdges::TBorders & | theRegistry, | ||
| FreeEdges::TBorders & | theContainer | ||
| ) |
Definition at line 2192 of file SMESH_Controls.cxx.
Referenced by SMESH.Controls.FreeEdges.GetBoreders().
{
if(theRegistry.find(theBorder) == theRegistry.end()){
theRegistry.insert(theBorder);
theContainer.insert(theBorder);
}else{
theContainer.erase(theBorder);
}
}