Branch is a set of MA edges enclosed between branch points and/or MA ends. More...
#include <SMESH_MAT2d.hxx>
Public Member Functions | |
| bool | getBoundaryPoints (double param, BoundaryPoint &bp1, BoundaryPoint &bp2) const |
| Returns points on two EDGEs, equidistant from a given point of this Branch. More... | |
| bool | getBoundaryPoints (std::size_t iMAEdge, double maEdgeParam, BoundaryPoint &bp1, BoundaryPoint &bp2) const |
| Returns points on two EDGEs, equidistant from a given point of this Branch. More... | |
| bool | getBoundaryPoints (const BranchPoint &p, BoundaryPoint &bp1, BoundaryPoint &bp2) const |
| Returns points on two EDGEs, equidistant from a given point of this Branch. More... | |
| bool | getParameter (const BranchPoint &p, double &u) const |
| Return a parameter of a BranchPoint normalized within this Branch. More... | |
| std::size_t | nbEdges () const |
| const BranchEnd * | getEnd (bool the2nd) const |
| bool | hasEndOfType (BranchEndType type) const |
| Check type of both ends. More... | |
| void | getPoints (std::vector< gp_XY > &points, const double scale[2]) const |
| Returns MA points. More... | |
| void | getGeomEdges (std::vector< std::size_t > &edgeIDs1, std::vector< std::size_t > &edgeIDs2) const |
| Return indices of EDGEs equidistant from this branch. More... | |
| void | getOppositeGeomEdges (std::vector< std::size_t > &edgeIDs1, std::vector< std::size_t > &edgeIDs2, std::vector< BranchPoint > &divPoints) const |
| Return indices of opposite parts of EDGEs equidistant from this branch. More... | |
| bool | isRemoved () const |
| void | init (std::vector< const TVDEdge * > &maEdges, const Boundary *boundary, std::map< const TVDVertex *, BranchEndType > &endType) |
| Copy points of an EDGE. More... | |
| void | setBranchesToEnds (const std::vector< Branch > &branches) |
| fills BranchEnd::_branches of its ends More... | |
| BranchPoint | getPoint (const TVDVertex *vertex) const |
| returns a BranchPoint corresponding to a TVDVertex More... | |
| void | setRemoved (const BranchPoint &proxyPoint) |
| Sets a proxy point for a removed branch. More... | |
Static Public Member Functions | |
| static void | setGeomEdge (std::size_t geomIndex, const TVDEdge *maEdge) |
| Store data of boundary segments in TVDEdge. More... | |
| static std::size_t | getGeomEdge (const TVDEdge *maEdge) |
| static void | setBndSegment (std::size_t segIndex, const TVDEdge *maEdge) |
| static std::size_t | getBndSegment (const TVDEdge *maEdge) |
Private Member Functions | |
| bool | addDivPntForConcaVertex (std::vector< std::size_t > &edgeIDs1, std::vector< std::size_t > &edgeIDs2, std::vector< BranchPoint > &divPoints, const std::vector< const TVDEdge * > &maEdges, const std::vector< const TVDEdge * > &maEdgesTwin, int &i) const |
| Looks for a BranchPoint position around a concave VERTEX. More... | |
Private Attributes | |
| std::vector< const TVDEdge * > | _maEdges |
| std::vector< double > | _params |
| const Boundary * | _boundary |
| BranchEnd | _endPoint1 |
| BranchEnd | _endPoint2 |
| BranchPoint | _proxyPoint |
Branch is a set of MA edges enclosed between branch points and/or MA ends.
It's main feature is to return two BoundaryPoint's per a point on it. Points on a Branch are defined by [0,1] parameter
|
private |
Looks for a BranchPoint position around a concave VERTEX.
References SMESH_MAT2d::BranchPoint::_branch, SMESH_MAT2d::BranchPoint::_edgeParam, and SMESH_MAT2d::BranchPoint::_iEdge.
|
static |
| bool SMESH_MAT2d::Branch::getBoundaryPoints | ( | double | param, |
| BoundaryPoint & | bp1, | ||
| BoundaryPoint & | bp2 | ||
| ) | const |
Returns points on two EDGEs, equidistant from a given point of this Branch.
| [in] | param | - [0;1] normalized param on the Branch |
| [out] | bp1 | - BoundaryPoint on EDGE with a lower index |
| [out] | bp2 | - BoundaryPoint on EDGE with a higher index |
References Min().
| bool SMESH_MAT2d::Branch::getBoundaryPoints | ( | std::size_t | iMAEdge, |
| double | maEdgeParam, | ||
| BoundaryPoint & | bp1, | ||
| BoundaryPoint & | bp2 | ||
| ) | const |
Returns points on two EDGEs, equidistant from a given point of this Branch.
| [in] | iMAEdge | - index of a MA edge within this Branch |
| [in] | maEdgeParam | - [0;1] normalized param on the iMAEdge |
| [out] | bp1 | - BoundaryPoint on EDGE with a lower index |
| [out] | bp2 | - BoundaryPoint on EDGE with a higher index |
| bool SMESH_MAT2d::Branch::getBoundaryPoints | ( | const BranchPoint & | p, |
| BoundaryPoint & | bp1, | ||
| BoundaryPoint & | bp2 | ||
| ) | const |
Returns points on two EDGEs, equidistant from a given point of this Branch.
References SMESH_MAT2d::BranchPoint::_branch, SMESH_MAT2d::BranchPoint::_edgeParam, and SMESH_MAT2d::BranchPoint::_iEdge.
|
static |
| void SMESH_MAT2d::Branch::getGeomEdges | ( | std::vector< std::size_t > & | edgeIDs1, |
| std::vector< std::size_t > & | edgeIDs2 | ||
| ) | const |
Return indices of EDGEs equidistant from this branch.
| void SMESH_MAT2d::Branch::getOppositeGeomEdges | ( | std::vector< std::size_t > & | edgeIDs1, |
| std::vector< std::size_t > & | edgeIDs2, | ||
| std::vector< BranchPoint > & | divPoints | ||
| ) | const |
Return indices of opposite parts of EDGEs equidistant from this branch.
| [out] | edgeIDs1 | - EDGE index opposite to the edgeIDs2[i]-th EDGE |
| [out] | edgeIDs2 | - EDGE index opposite to the edgeIDs1[i]-th EDGE |
| [out] | divPoints | - BranchPoint's located between two successive unique pairs of EDGE indices. A divPoints[i] can separate e.g. two following pairs of EDGE indices < 0, 2 > and < 0, 1 >. Number of divPoints is one less than number of edgeIDs |
References SMESH_MAT2d::BranchPoint::_branch, SMESH_MAT2d::BranchPoint::_edgeParam, SMESH_MAT2d::BranchPoint::_iEdge, and Abs().
| bool SMESH_MAT2d::Branch::getParameter | ( | const BranchPoint & | p, |
| double & | u | ||
| ) | const |
Return a parameter of a BranchPoint normalized within this Branch.
References SMESH_MAT2d::BranchPoint::_branch, SMESH_MAT2d::BranchPoint::_edgeParam, SMESH_MAT2d::BranchPoint::_iEdge, and getParameter().
Referenced by getParameter().
| SMESH_MAT2d::BranchPoint SMESH_MAT2d::Branch::getPoint | ( | const TVDVertex * | vertex | ) | const |
returns a BranchPoint corresponding to a TVDVertex
References SMESH_MAT2d::BranchPoint::_branch, SMESH_MAT2d::BranchPoint::_edgeParam, and SMESH_MAT2d::BranchPoint::_iEdge.
| void SMESH_MAT2d::Branch::getPoints | ( | std::vector< gp_XY > & | points, |
| const double | scale[2] | ||
| ) | const |
Returns MA points.
| [out] | points | - the 2d points |
| [in] | scale | - the scale that was used to scale the 2d space of MA |
Referenced by SMESH_MAT2d::MedialAxis::getPoints(), and SMESH_MAT2d::MedialAxis::make3DCurve().
| bool SMESH_MAT2d::Branch::hasEndOfType | ( | BranchEndType | type | ) | const |
Check type of both ends.
| void SMESH_MAT2d::Branch::init | ( | std::vector< const TVDEdge * > & | maEdges, |
| const Boundary * | boundary, | ||
| std::map< const TVDVertex *, BranchEndType > & | endType | ||
| ) |
Copy points of an EDGE.
References if().
| bool SMESH_MAT2d::Branch::isRemoved | ( | ) | const |
| std::size_t SMESH_MAT2d::Branch::nbEdges | ( | ) | const |
|
static |
| void SMESH_MAT2d::Branch::setBranchesToEnds | ( | const std::vector< Branch > & | branches | ) |
fills BranchEnd::_branches of its ends
|
static |
Store data of boundary segments in TVDEdge.
| void SMESH_MAT2d::Branch::setRemoved | ( | const BranchPoint & | proxyPoint | ) |
Sets a proxy point for a removed branch.
| [in] | proxyPoint | - a point of another branch to which all points of this branch are mapped |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |