Smoother of _LayerEdge's on EDGE. More...
Data Structures | |
struct | OffPnt |
Public Member Functions | |
Handle (Geom_Curve) _anaCurve | |
_Smoother1D (Handle(Geom_Curve) curveForSmooth, _EdgesOnShape &eos) | |
bool | Perform (_SolidData &data, Handle(ShapeAnalysis_Surface)&surface, const TopoDS_Face &F, SMESH_MesherHelper &helper) |
Smooth edges on EDGE. More... | |
void | prepare (_SolidData &data) |
Prepare for smoothing. More... | |
void | findEdgesToSmooth () |
Find edges to smooth. More... | |
bool | isToSmooth (int iE) |
Check if iE-th _LayerEdge needs smoothing. More... | |
bool | smoothAnalyticEdge (_SolidData &data, Handle(ShapeAnalysis_Surface)&surface, const TopoDS_Face &F, SMESH_MesherHelper &helper) |
smooth _LayerEdge's on a staight EDGE or circular EDGE More... | |
bool | smoothComplexEdge (_SolidData &data, Handle(ShapeAnalysis_Surface)&surface, const TopoDS_Face &F, SMESH_MesherHelper &helper) |
smooth _LayerEdge's on a an EDGE More... | |
gp_XYZ | getNormalNormal (const gp_XYZ &normal, const gp_XYZ &edgeDir) |
return _normal of _leOnV[is2nd] normal to the EDGE More... | |
_LayerEdge * | getLEdgeOnV (bool is2nd) |
bool | isAnalytic () const |
void | offPointsToPython () const |
Writes a script creating a mesh composed of _offPoints. More... | |
Static Public Member Functions | |
static | Handle (Geom_Curve) CurveForSmooth(const TopoDS_Edge &E |
Data Fields | |
vector< OffPnt > | _offPoints |
vector< double > | _leParams |
_LayerEdge | _leOnV [2] |
gp_XYZ | _edgeDir [2] |
size_t | _iSeg [2] |
_EdgesOnShape & | _eos |
double | _curveLen |
std::pair< int, int > | _eToSmooth [2] |
static _EdgesOnShape & | eos |
static _EdgesOnShape SMESH_MesherHelper & | helper |
Smoother of _LayerEdge's on EDGE.
VISCOUS_3D::_Smoother1D::_Smoother1D | ( | Handle(Geom_Curve) | curveForSmooth, |
_EdgesOnShape & | eos | ||
) |
void _Smoother1D::findEdgesToSmooth | ( | ) |
Find edges to smooth.
References VISCOUS_3D::_LayerEdge::_cosin, VISCOUS_3D::needSmoothing(), and VISCOUS_3D::_EdgesOnShape::size().
_LayerEdge* VISCOUS_3D::_Smoother1D::getLEdgeOnV | ( | bool | is2nd | ) |
References VISCOUS_3D::_EdgesOnShape::_edges.
gp_XYZ _Smoother1D::getNormalNormal | ( | const gp_XYZ & | normal, |
const gp_XYZ & | edgeDir | ||
) |
return _normal of _leOnV[is2nd] normal to the EDGE
References VISCOUS_3D::_EdgesOnShape::_edges, and VISCOUS_3D::_LayerEdge::_normal.
VISCOUS_3D::_Smoother1D::Handle | ( | Geom_Curve | ) |
|
static |
bool VISCOUS_3D::_Smoother1D::isAnalytic | ( | ) | const |
bool _Smoother1D::isToSmooth | ( | int | iE | ) |
Check if iE-th _LayerEdge needs smoothing.
References VISCOUS_3D::_LayerEdge::_nodes, VISCOUS_3D::_LayerEdge::Is(), VISCOUS_3D::needSmoothing(), VISCOUS_3D::_EdgesOnShape::size(), and VISCOUS_3D::_2NearEdges::srcNode().
void _Smoother1D::offPointsToPython | ( | ) | const |
Writes a script creating a mesh composed of _offPoints.
bool _Smoother1D::Perform | ( | _SolidData & | data, |
Handle(ShapeAnalysis_Surface)& | surface, | ||
const TopoDS_Face & | F, | ||
SMESH_MesherHelper & | helper | ||
) |
Smooth edges on EDGE.
Referenced by VISCOUS_3D::_ViscousBuilder::smoothAndCheck().
void _Smoother1D::prepare | ( | _SolidData & | data | ) |
Prepare for smoothing.
References VISCOUS_3D::_LayerEdge::_2neibors, VISCOUS_3D::_LayerEdge::_cosin, VISCOUS_3D::_2NearEdges::_edges, VISCOUS_3D::_EdgesOnShape::_edges, VISCOUS_3D::_LayerEdge::_flags, VISCOUS_3D::_LayerEdge::_len, VISCOUS_3D::_LayerEdge::_lenFactor, VISCOUS_3D::_LayerEdge::_nodes, VISCOUS_3D::_LayerEdge::_normal, VISCOUS_3D::_EdgesOnShape::_shape, VISCOUS_3D::_EdgesOnShape::_sWOL, Edge, SMESH_Algo::EdgeLength(), VISCOUS_3D::getEdgeDir(), VISCOUS_3D::_SolidData::GetHelper(), SMESH_MesherHelper::GetNodeU(), reverse(), VISCOUS_3D::_EdgesOnShape::size(), and VISCOUS_3D::_SolidData::SortOnEdge().
bool _Smoother1D::smoothAnalyticEdge | ( | _SolidData & | data, |
Handle(ShapeAnalysis_Surface)& | surface, | ||
const TopoDS_Face & | F, | ||
SMESH_MesherHelper & | helper | ||
) |
smooth _LayerEdge's on a staight EDGE or circular EDGE
References VISCOUS_3D::_EdgesOnShape::_edges, VISCOUS_3D::_LayerEdge::_nodes, VISCOUS_3D::_LayerEdge::_pos, SMESH::DownCast(), dumpMove, SMESH_MesherHelper::GetOtherParam(), SMESH_MesherHelper::GetPeriodicIndex(), SMDS_MeshNode::GetPosition(), VISCOUS_3D::_SolidData::GetShapeEdges(), Handle(), VISCOUS_3D::_LayerEdge::Is(), VISCOUS_3D::_LayerEdge::LastUV(), SMDS_MeshNode::setXYZ(), VISCOUS_3D::_EdgesOnShape::size(), SMESH_TNodeXYZ::SquareDistance(), and VISCOUS_3D::_2NearEdges::tgtNode().
bool _Smoother1D::smoothComplexEdge | ( | _SolidData & | data, |
Handle(ShapeAnalysis_Surface)& | surface, | ||
const TopoDS_Face & | F, | ||
SMESH_MesherHelper & | helper | ||
) |
smooth _LayerEdge's on a an EDGE
References VISCOUS_3D::_LayerEdge::_len, VISCOUS_3D::_LayerEdge::_lenFactor, VISCOUS_3D::_LayerEdge::_normal, debugMsg, dumpMove, VISCOUS_3D::_LayerEdge::Is(), SMDS_MeshNode::setXYZ(), and VISCOUS_3D::_EdgesOnShape::size().
double VISCOUS_3D::_Smoother1D::_curveLen |
gp_XYZ VISCOUS_3D::_Smoother1D::_edgeDir[2] |
_EdgesOnShape& VISCOUS_3D::_Smoother1D::_eos |
std::pair<int,int> VISCOUS_3D::_Smoother1D::_eToSmooth[2] |
size_t VISCOUS_3D::_Smoother1D::_iSeg[2] |
_LayerEdge VISCOUS_3D::_Smoother1D::_leOnV[2] |
vector< double > VISCOUS_3D::_Smoother1D::_leParams |
vector< OffPnt > VISCOUS_3D::_Smoother1D::_offPoints |
_EdgesOnShape& VISCOUS_3D::_Smoother1D::eos |
_EdgesOnShape SMESH_MesherHelper& VISCOUS_3D::_Smoother1D::helper |