-// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//-------------------------------------------------------------------------------------
// type of Branch end point
enum BranchEndType { BE_UNDEF,
- BE_ON_VERTEX, // branch ends at a convex VRTEX
+ BE_ON_VERTEX, // branch ends at a convex VERTEX
BE_BRANCH_POINT, // branch meats 2 or more other branches
BE_END // branch end equidistant from several adjacent segments
};
std::size_t _iEdge; // MA edge index within the branch
double _edgeParam; // normalized param within the MA edge
- BranchPoint(): _branch(0), _iEdge(0), _edgeParam(-1) {}
+ BranchPoint( const Branch* b = 0, std::size_t e = 0, double u = -1 ):
+ _branch(b), _iEdge(e), _edgeParam(u) {}
};
//-------------------------------------------------------------------------------------
/*!
public: // internal: construction
- void init( std::vector<const TVDEdge*>& maEdges,
- const Boundary* boundary,
- std::map< const TVDVertex*, BranchEndType > endType);
+ void init( std::vector<const TVDEdge*>& maEdges,
+ const Boundary* boundary,
+ std::map< const TVDVertex*, BranchEndType >& endType);
void setBranchesToEnds( const std::vector< Branch >& branches);
BranchPoint getPoint( const TVDVertex* vertex ) const;
void setRemoved( const BranchPoint& proxyPoint );
std::vector< BranchPoint >& divPoints,
const std::vector<const TVDEdge*>& maEdges,
const std::vector<const TVDEdge*>& maEdgesTwin,
- size_t & i) const;
+ int & i) const;
// association of _maEdges with boundary segments is stored in this way:
// index of an EDGE: TVDEdge->cell()->color()
bool getBranchPoint( const std::size_t iEdge, double u, BranchPoint& p ) const;
+ bool getBranchPoint( const BoundaryPoint& bp, BranchPoint& p ) const;
+
bool isConcaveSegment( std::size_t iEdge, std::size_t iSeg ) const;
bool moveToClosestEdgeEnd( BoundaryPoint& bp ) const;