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, _curveLen, _edgeDir, _eos, _eToSmooth, _leOnV, _leParams, getLEdgeOnV(), isToSmooth(), VISCOUS_3D::needSmoothing(), VISCOUS_3D::_LayerEdge::NORMAL_UPDATED, VISCOUS_3D::_EdgesOnShape::size(), and VISCOUS_3D::_LayerEdge::TO_SMOOTH.
Referenced by Perform().
| _LayerEdge * VISCOUS_3D::_Smoother1D::getLEdgeOnV | ( | bool | is2nd | ) |
References VISCOUS_3D::_EdgesOnShape::_edges, and _eos.
Referenced by findEdgesToSmooth(), prepare(), smoothAnalyticEdge(), and smoothComplexEdge().
| 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, _eos, and VISCOUS_3D::_LayerEdge::_normal.
Referenced by prepare(), and smoothComplexEdge().
| VISCOUS_3D::_Smoother1D::Handle | ( | Geom_Curve | ) |
Referenced by Handle(), and smoothAnalyticEdge().
|
static |
| bool VISCOUS_3D::_Smoother1D::isAnalytic | ( | ) | const |
Referenced by Perform(), prepare(), and smoothAnalyticEdge().
| bool _Smoother1D::isToSmooth | ( | int | iE | ) |
Check if iE-th _LayerEdge needs smoothing.
References _eos, VISCOUS_3D::_LayerEdge::_nodes, VISCOUS_3D::_LayerEdge::Is(), VISCOUS_3D::needSmoothing(), VISCOUS_3D::_EdgesOnShape::size(), VISCOUS_3D::_2NearEdges::srcNode(), and VISCOUS_3D::_LayerEdge::TO_SMOOTH.
Referenced by findEdgesToSmooth().
| void _Smoother1D::offPointsToPython | ( | ) | const |
Writes a script creating a mesh composed of _offPoints.
References _offPoints.
| bool _Smoother1D::Perform | ( | _SolidData & | data, |
| Handle(ShapeAnalysis_Surface)& | surface, | ||
| const TopoDS_Face & | F, | ||
| SMESH_MesherHelper & | helper | ||
| ) |
Smooth edges on EDGE.
References _leParams, _offPoints, findEdgesToSmooth(), helper, isAnalytic(), prepare(), smoothAnalyticEdge(), and smoothComplexEdge().
Referenced by VISCOUS_3D::_ViscousBuilder::smoothAndCheck().
| void _Smoother1D::prepare | ( | _SolidData & | data | ) |
Prepare for smoothing.
References VISCOUS_3D::_LayerEdge::_2neibors, VISCOUS_3D::_LayerEdge::_cosin, _curveLen, _edgeDir, VISCOUS_3D::_2NearEdges::_edges, VISCOUS_3D::_EdgesOnShape::_edges, _eos, VISCOUS_3D::_LayerEdge::_flags, _iSeg, VISCOUS_3D::_LayerEdge::_len, VISCOUS_3D::_LayerEdge::_lenFactor, _leOnV, _leParams, VISCOUS_3D::_LayerEdge::_nodes, VISCOUS_3D::_LayerEdge::_normal, _offPoints, VISCOUS_3D::_EdgesOnShape::_shape, VISCOUS_3D::_EdgesOnShape::_sWOL, Edge, SMESH_Algo::EdgeLength(), VISCOUS_3D::getEdgeDir(), VISCOUS_3D::_SolidData::GetHelper(), getLEdgeOnV(), SMESH_MesherHelper::GetNodeU(), getNormalNormal(), isAnalytic(), VISCOUS_3D::_LayerEdge::MULTI_NORMAL, reverse(), VISCOUS_3D::_EdgesOnShape::size(), and VISCOUS_3D::_SolidData::SortOnEdge().
Referenced by Perform().
| 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, _eos, _eToSmooth, _leParams, VISCOUS_3D::_LayerEdge::_nodes, VISCOUS_3D::_LayerEdge::_pos, VISCOUS_3D::_LayerEdge::BLOCKED, SMESH::DownCast(), dumpMove, getLEdgeOnV(), SMDS_MeshNode::GetPosition(), VISCOUS_3D::_SolidData::GetShapeEdges(), Handle(), helper, VISCOUS_3D::_LayerEdge::Is(), isAnalytic(), VISCOUS_3D::_LayerEdge::LastUV(), SMDS_MeshNode::setXYZ(), VISCOUS_3D::_EdgesOnShape::size(), VISCOUS_3D::_LayerEdge::SMOOTHED, SMESH_TNodeXYZ::SquareDistance(), and VISCOUS_3D::_2NearEdges::tgtNode().
Referenced by Perform().
| bool _Smoother1D::smoothComplexEdge | ( | _SolidData & | data, |
| Handle(ShapeAnalysis_Surface)& | surface, | ||
| const TopoDS_Face & | F, | ||
| SMESH_MesherHelper & | helper | ||
| ) |
smooth _LayerEdge's on a an EDGE
References _edgeDir, _eos, _iSeg, VISCOUS_3D::_LayerEdge::_len, VISCOUS_3D::_LayerEdge::_lenFactor, _leOnV, _leParams, VISCOUS_3D::_LayerEdge::_normal, _offPoints, VISCOUS_3D::_LayerEdge::BLOCKED, debugMsg, dumpMove, getLEdgeOnV(), getNormalNormal(), VISCOUS_3D::_LayerEdge::Is(), VISCOUS_3D::_LayerEdge::NORMAL_UPDATED, SMDS_MeshNode::setXYZ(), and VISCOUS_3D::_EdgesOnShape::size().
Referenced by Perform().
| double VISCOUS_3D::_Smoother1D::_curveLen |
Referenced by findEdgesToSmooth(), and prepare().
| gp_XYZ VISCOUS_3D::_Smoother1D::_edgeDir[2] |
Referenced by findEdgesToSmooth(), prepare(), and smoothComplexEdge().
| _EdgesOnShape& VISCOUS_3D::_Smoother1D::_eos |
Referenced by findEdgesToSmooth(), getLEdgeOnV(), getNormalNormal(), isToSmooth(), prepare(), smoothAnalyticEdge(), and smoothComplexEdge().
| std::pair<int,int> VISCOUS_3D::_Smoother1D::_eToSmooth[2] |
Referenced by findEdgesToSmooth(), and smoothAnalyticEdge().
| size_t VISCOUS_3D::_Smoother1D::_iSeg[2] |
Referenced by prepare(), and smoothComplexEdge().
| _LayerEdge VISCOUS_3D::_Smoother1D::_leOnV[2] |
Referenced by findEdgesToSmooth(), prepare(), and smoothComplexEdge().
| vector< double > VISCOUS_3D::_Smoother1D::_leParams |
Referenced by findEdgesToSmooth(), Perform(), prepare(), smoothAnalyticEdge(), and smoothComplexEdge().
| vector< OffPnt > VISCOUS_3D::_Smoother1D::_offPoints |
Referenced by offPointsToPython(), Perform(), prepare(), and smoothComplexEdge().
| _EdgesOnShape& VISCOUS_3D::_Smoother1D::eos |
Referenced by Handle().
| _EdgesOnShape SMESH_MesherHelper& VISCOUS_3D::_Smoother1D::helper |
Referenced by Handle(), Perform(), and smoothAnalyticEdge().