Open CASCADE Technology
7.6.0
|
Fills a DataStructure from TopOpeBRepDS with the result of Face/Face instersection described by FacesIntersector from TopOpeBRep. if the faces have same Domain, record it in the DS. else record lines and points and attach list of interferences to the faces, the lines and the edges. More...
#include <TopOpeBRep_FacesFiller.hxx>
Public Member Functions | |
TopOpeBRep_FacesFiller () | |
void | Insert (const TopoDS_Shape &F1, const TopoDS_Shape &F2, TopOpeBRep_FacesIntersector &FACINT, const Handle< TopOpeBRepDS_HDataStructure > &HDS) |
Stores in <DS> the intersections of <S1> and <S2>. More... | |
void | ProcessSectionEdges () |
TopOpeBRep_PointClassifier & | ChangePointClassifier () |
TopOpeBRepTool_PShapeClassifier | PShapeClassifier () const |
return field myPShapeClassifier. More... | |
void | SetPShapeClassifier (const TopOpeBRepTool_PShapeClassifier &PSC) |
set field myPShapeClassifier. More... | |
void | LoadLine (TopOpeBRep_LineInter &L) |
Standard_Boolean | CheckLine (TopOpeBRep_LineInter &L) const |
void | VP_Position (TopOpeBRep_FacesIntersector &FACINT) |
compute position of VPoints of lines More... | |
void | VP_Position (TopOpeBRep_LineInter &L) |
compute position of VPoints of line L More... | |
void | VP_PositionOnL (TopOpeBRep_LineInter &L) |
compute position of VPoints of non-restriction line L. More... | |
void | VP_PositionOnR (TopOpeBRep_LineInter &L) |
compute position of VPoints of restriction line L. More... | |
void | VP_Position (TopOpeBRep_VPointInter &VP, TopOpeBRep_VPointInterClassifier &VPC) |
compute position of VP with current faces, according to VP.ShapeIndex() . More... | |
void | ProcessLine () |
Process current intersection line (set by LoadLine) More... | |
void | ResetDSC () |
void | ProcessRLine () |
Process current restriction line, adding restriction edge and computing face/edge interference. More... | |
void | FillLineVPonR () |
VP processing for restriction line and line sharing same domain with section edges : More... | |
void | FillLine () |
void | AddShapesLine () |
compute 3d curve, pcurves and face/curve interferences for current NDSC. Add them to the DS. More... | |
void | GetESL (TopTools_ListOfShape &LES) |
Get map <mapES > of restriction edges having parts IN one of the 2 faces. More... | |
void | ProcessVPR (TopOpeBRep_FacesFiller &FF, const TopOpeBRep_VPointInter &VP) |
calling the following ProcessVPIonR and ProcessVPonR. More... | |
void | ProcessVPIonR (TopOpeBRep_VPointInterIterator &VPI, const TopOpeBRepDS_Transition &trans1, const TopoDS_Shape &F1, const Standard_Integer ShapeIndex) |
processing ProcessVPonR for VPI. More... | |
void | ProcessVPonR (const TopOpeBRep_VPointInter &VP, const TopOpeBRepDS_Transition &trans1, const TopoDS_Shape &F1, const Standard_Integer ShapeIndex) |
adds <VP>'s geometric point (if not stored) and computes (curve or edge)/(point or vertex) interference. More... | |
void | ProcessVPonclosingR (const TopOpeBRep_VPointInter &VP, const TopoDS_Shape &F1, const Standard_Integer ShapeIndex, const TopOpeBRepDS_Transition &transEdge, const TopOpeBRepDS_Kind PVKind, const Standard_Integer PVIndex, const Standard_Boolean EPIfound, const Handle< TopOpeBRepDS_Interference > &IEPI) |
VP processing on closing arc. More... | |
Standard_Boolean | ProcessVPondgE (const TopOpeBRep_VPointInter &VP, const Standard_Integer ShapeIndex, TopOpeBRepDS_Kind &PVKind, Standard_Integer &PVIndex, Standard_Boolean &EPIfound, Handle< TopOpeBRepDS_Interference > &IEPI, Standard_Boolean &CPIfound, Handle< TopOpeBRepDS_Interference > &ICPI) |
VP processing on degenerated arc. More... | |
void | ProcessVPInotonR (TopOpeBRep_VPointInterIterator &VPI) |
processing ProcessVPnotonR for VPI. More... | |
void | ProcessVPnotonR (const TopOpeBRep_VPointInter &VP) |
adds <VP>'s geometrical point to the DS (if not stored) and computes curve point interference. More... | |
Standard_Boolean | GetGeometry (TopOpeBRepDS_ListIteratorOfListOfInterference &IT, const TopOpeBRep_VPointInter &VP, Standard_Integer &G, TopOpeBRepDS_Kind &K) |
Get the geometry of a DS point <DSP>. Search for it with ScanInterfList (previous method). if found, set <G> to the geometry of the interference found. else, add the point <DSP> in the <DS> and set <G> to the value of the new geometry such created. returns the value of ScanInterfList(). More... | |
Standard_Integer | MakeGeometry (const TopOpeBRep_VPointInter &VP, const Standard_Integer ShapeIndex, TopOpeBRepDS_Kind &K) |
void | StoreCurveInterference (const Handle< TopOpeBRepDS_Interference > &I) |
Add interference to list myDSCIL. on a given line, at first call, add a new DS curve. More... | |
Standard_Boolean | GetFFGeometry (const TopOpeBRepDS_Point &DSP, TopOpeBRepDS_Kind &K, Standard_Integer &G) const |
search for G = geometry of Point which is identical to <DSP> among the DS Points created in the CURRENT face/face intersection ( current Insert() call). More... | |
Standard_Boolean | GetFFGeometry (const TopOpeBRep_VPointInter &VP, TopOpeBRepDS_Kind &K, Standard_Integer &G) const |
search for G = geometry of Point which is identical to <VP> among the DS Points created in the CURRENT face/face intersection ( current Insert() call). More... | |
TopOpeBRep_FacesIntersector & | ChangeFacesIntersector () |
Handle< TopOpeBRepDS_HDataStructure > | HDataStructure () |
TopOpeBRepDS_DataStructure & | ChangeDataStructure () |
const TopoDS_Face & | Face (const Standard_Integer I) const |
const TopOpeBRepDS_Transition & | FaceFaceTransition (const TopOpeBRep_LineInter &L, const Standard_Integer I) const |
const TopOpeBRepDS_Transition & | FaceFaceTransition (const Standard_Integer I) const |
TopOpeBRep_PFacesIntersector | PFacesIntersectorDummy () const |
TopOpeBRepDS_PDataStructure | PDataStructureDummy () const |
TopOpeBRep_PLineInter | PLineInterDummy () const |
void | SetTraceIndex (const Standard_Integer exF1, const Standard_Integer exF2) |
void | GetTraceIndex (Standard_Integer &exF1, Standard_Integer &exF2) const |
Static Public Member Functions | |
static void | Lminmax (const TopOpeBRep_LineInter &L, Standard_Real &pmin, Standard_Real &pmax) |
Computes <pmin> and <pmax> the upper and lower bounds of <L> enclosing all vpoints. More... | |
static Standard_Boolean | LSameDomainERL (const TopOpeBRep_LineInter &L, const TopTools_ListOfShape &ERL) |
Returns <True> if <L> shares a same geometric domain with at least one of the section edges of <ERL>. More... | |
static Standard_Boolean | IsVPtransLok (const TopOpeBRep_LineInter &L, const Standard_Integer iVP, const Standard_Integer SI12, TopOpeBRepDS_Transition &T) |
Computes the transition <T> of the VPoint <iVP> on the edge of <SI12>. Returns <False> if the status is unknown. More... | |
static Standard_Boolean | TransvpOK (const TopOpeBRep_LineInter &L, const Standard_Integer iVP, const Standard_Integer SI, const Standard_Boolean isINOUT) |
Computes transition on line for VP<iVP> on edge restriction of <SI>. If <isINOUT> : returns <true> if transition computed is IN/OUT else : returns <true> if transition computed is OUT/IN. More... | |
static Standard_Real | VPParamOnER (const TopOpeBRep_VPointInter &vp, const TopOpeBRep_LineInter &Lrest) |
Returns parameter u of vp on the restriction edge. More... | |
static Standard_Boolean | EqualpPonR (const TopOpeBRep_LineInter &Lrest, const TopOpeBRep_VPointInter &VP1, const TopOpeBRep_VPointInter &VP2) |
Fills a DataStructure from TopOpeBRepDS with the result of Face/Face instersection described by FacesIntersector from TopOpeBRep. if the faces have same Domain, record it in the DS. else record lines and points and attach list of interferences to the faces, the lines and the edges.
TopOpeBRep_FacesFiller::TopOpeBRep_FacesFiller | ( | ) |
void TopOpeBRep_FacesFiller::AddShapesLine | ( | ) |
compute 3d curve, pcurves and face/curve interferences for current NDSC. Add them to the DS.
TopOpeBRepDS_DataStructure& TopOpeBRep_FacesFiller::ChangeDataStructure | ( | ) |
TopOpeBRep_FacesIntersector& TopOpeBRep_FacesFiller::ChangeFacesIntersector | ( | ) |
TopOpeBRep_PointClassifier& TopOpeBRep_FacesFiller::ChangePointClassifier | ( | ) |
Standard_Boolean TopOpeBRep_FacesFiller::CheckLine | ( | TopOpeBRep_LineInter & | L | ) | const |
|
static |
const TopoDS_Face& TopOpeBRep_FacesFiller::Face | ( | const Standard_Integer | I | ) | const |
const TopOpeBRepDS_Transition& TopOpeBRep_FacesFiller::FaceFaceTransition | ( | const Standard_Integer | I | ) | const |
const TopOpeBRepDS_Transition& TopOpeBRep_FacesFiller::FaceFaceTransition | ( | const TopOpeBRep_LineInter & | L, |
const Standard_Integer | I | ||
) | const |
void TopOpeBRep_FacesFiller::FillLine | ( | ) |
void TopOpeBRep_FacesFiller::FillLineVPonR | ( | ) |
VP processing for restriction line and line sharing same domain with section edges :
void TopOpeBRep_FacesFiller::GetESL | ( | TopTools_ListOfShape & | LES | ) |
Get map <mapES > of restriction edges having parts IN one of the 2 faces.
Standard_Boolean TopOpeBRep_FacesFiller::GetFFGeometry | ( | const TopOpeBRep_VPointInter & | VP, |
TopOpeBRepDS_Kind & | K, | ||
Standard_Integer & | G | ||
) | const |
search for G = geometry of Point which is identical to <VP> among the DS Points created in the CURRENT face/face intersection ( current Insert() call).
Standard_Boolean TopOpeBRep_FacesFiller::GetFFGeometry | ( | const TopOpeBRepDS_Point & | DSP, |
TopOpeBRepDS_Kind & | K, | ||
Standard_Integer & | G | ||
) | const |
search for G = geometry of Point which is identical to <DSP> among the DS Points created in the CURRENT face/face intersection ( current Insert() call).
Standard_Boolean TopOpeBRep_FacesFiller::GetGeometry | ( | TopOpeBRepDS_ListIteratorOfListOfInterference & | IT, |
const TopOpeBRep_VPointInter & | VP, | ||
Standard_Integer & | G, | ||
TopOpeBRepDS_Kind & | K | ||
) |
Get the geometry of a DS point <DSP>. Search for it with ScanInterfList (previous method). if found, set <G> to the geometry of the interference found. else, add the point <DSP> in the <DS> and set <G> to the value of the new geometry such created. returns the value of ScanInterfList().
void TopOpeBRep_FacesFiller::GetTraceIndex | ( | Standard_Integer & | exF1, |
Standard_Integer & | exF2 | ||
) | const |
Handle< TopOpeBRepDS_HDataStructure > TopOpeBRep_FacesFiller::HDataStructure | ( | ) |
void TopOpeBRep_FacesFiller::Insert | ( | const TopoDS_Shape & | F1, |
const TopoDS_Shape & | F2, | ||
TopOpeBRep_FacesIntersector & | FACINT, | ||
const Handle< TopOpeBRepDS_HDataStructure > & | HDS | ||
) |
Stores in <DS> the intersections of <S1> and <S2>.
|
static |
Computes the transition <T> of the VPoint <iVP> on the edge of <SI12>. Returns <False> if the status is unknown.
|
static |
Computes <pmin> and <pmax> the upper and lower bounds of <L> enclosing all vpoints.
void TopOpeBRep_FacesFiller::LoadLine | ( | TopOpeBRep_LineInter & | L | ) |
|
static |
Returns <True> if <L> shares a same geometric domain with at least one of the section edges of <ERL>.
Standard_Integer TopOpeBRep_FacesFiller::MakeGeometry | ( | const TopOpeBRep_VPointInter & | VP, |
const Standard_Integer | ShapeIndex, | ||
TopOpeBRepDS_Kind & | K | ||
) |
TopOpeBRepDS_PDataStructure TopOpeBRep_FacesFiller::PDataStructureDummy | ( | ) | const |
TopOpeBRep_PFacesIntersector TopOpeBRep_FacesFiller::PFacesIntersectorDummy | ( | ) | const |
TopOpeBRep_PLineInter TopOpeBRep_FacesFiller::PLineInterDummy | ( | ) | const |
void TopOpeBRep_FacesFiller::ProcessLine | ( | ) |
Process current intersection line (set by LoadLine)
void TopOpeBRep_FacesFiller::ProcessRLine | ( | ) |
Process current restriction line, adding restriction edge and computing face/edge interference.
void TopOpeBRep_FacesFiller::ProcessSectionEdges | ( | ) |
void TopOpeBRep_FacesFiller::ProcessVPInotonR | ( | TopOpeBRep_VPointInterIterator & | VPI | ) |
processing ProcessVPnotonR for VPI.
void TopOpeBRep_FacesFiller::ProcessVPIonR | ( | TopOpeBRep_VPointInterIterator & | VPI, |
const TopOpeBRepDS_Transition & | trans1, | ||
const TopoDS_Shape & | F1, | ||
const Standard_Integer | ShapeIndex | ||
) |
processing ProcessVPonR for VPI.
void TopOpeBRep_FacesFiller::ProcessVPnotonR | ( | const TopOpeBRep_VPointInter & | VP | ) |
adds <VP>'s geometrical point to the DS (if not stored) and computes curve point interference.
void TopOpeBRep_FacesFiller::ProcessVPonclosingR | ( | const TopOpeBRep_VPointInter & | VP, |
const TopoDS_Shape & | F1, | ||
const Standard_Integer | ShapeIndex, | ||
const TopOpeBRepDS_Transition & | transEdge, | ||
const TopOpeBRepDS_Kind | PVKind, | ||
const Standard_Integer | PVIndex, | ||
const Standard_Boolean | EPIfound, | ||
const Handle< TopOpeBRepDS_Interference > & | IEPI | ||
) |
VP processing on closing arc.
Standard_Boolean TopOpeBRep_FacesFiller::ProcessVPondgE | ( | const TopOpeBRep_VPointInter & | VP, |
const Standard_Integer | ShapeIndex, | ||
TopOpeBRepDS_Kind & | PVKind, | ||
Standard_Integer & | PVIndex, | ||
Standard_Boolean & | EPIfound, | ||
Handle< TopOpeBRepDS_Interference > & | IEPI, | ||
Standard_Boolean & | CPIfound, | ||
Handle< TopOpeBRepDS_Interference > & | ICPI | ||
) |
VP processing on degenerated arc.
void TopOpeBRep_FacesFiller::ProcessVPonR | ( | const TopOpeBRep_VPointInter & | VP, |
const TopOpeBRepDS_Transition & | trans1, | ||
const TopoDS_Shape & | F1, | ||
const Standard_Integer | ShapeIndex | ||
) |
adds <VP>'s geometric point (if not stored) and computes (curve or edge)/(point or vertex) interference.
void TopOpeBRep_FacesFiller::ProcessVPR | ( | TopOpeBRep_FacesFiller & | FF, |
const TopOpeBRep_VPointInter & | VP | ||
) |
calling the following ProcessVPIonR and ProcessVPonR.
TopOpeBRepTool_PShapeClassifier TopOpeBRep_FacesFiller::PShapeClassifier | ( | ) | const |
return field myPShapeClassifier.
void TopOpeBRep_FacesFiller::ResetDSC | ( | ) |
void TopOpeBRep_FacesFiller::SetPShapeClassifier | ( | const TopOpeBRepTool_PShapeClassifier & | PSC | ) |
set field myPShapeClassifier.
void TopOpeBRep_FacesFiller::SetTraceIndex | ( | const Standard_Integer | exF1, |
const Standard_Integer | exF2 | ||
) |
void TopOpeBRep_FacesFiller::StoreCurveInterference | ( | const Handle< TopOpeBRepDS_Interference > & | I | ) |
Add interference to list myDSCIL. on a given line, at first call, add a new DS curve.
|
static |
Computes transition on line for VP<iVP> on edge restriction of <SI>. If <isINOUT> : returns <true> if transition computed is IN/OUT else : returns <true> if transition computed is OUT/IN.
void TopOpeBRep_FacesFiller::VP_Position | ( | TopOpeBRep_FacesIntersector & | FACINT | ) |
compute position of VPoints of lines
void TopOpeBRep_FacesFiller::VP_Position | ( | TopOpeBRep_LineInter & | L | ) |
compute position of VPoints of line L
void TopOpeBRep_FacesFiller::VP_Position | ( | TopOpeBRep_VPointInter & | VP, |
TopOpeBRep_VPointInterClassifier & | VPC | ||
) |
compute position of VP with current faces, according to VP.ShapeIndex() .
void TopOpeBRep_FacesFiller::VP_PositionOnL | ( | TopOpeBRep_LineInter & | L | ) |
compute position of VPoints of non-restriction line L.
void TopOpeBRep_FacesFiller::VP_PositionOnR | ( | TopOpeBRep_LineInter & | L | ) |
compute position of VPoints of restriction line L.
|
static |
Returns parameter u of vp on the restriction edge.