Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions
TopOpeBRep_FacesFiller Class Reference

Fills a DataStructure from TopOpeBRepDS with the result of Face/Face intersection 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 occ::handle< TopOpeBRepDS_HDataStructure > &HDS)
 Stores in <DS> the intersections of <S1> and <S2>.
 
void ProcessSectionEdges ()
 
TopOpeBRep_PointClassifierChangePointClassifier ()
 
TopOpeBRepTool_PShapeClassifier PShapeClassifier () const
 return field myPShapeClassifier.
 
void SetPShapeClassifier (const TopOpeBRepTool_PShapeClassifier &PSC)
 set field myPShapeClassifier.
 
void LoadLine (TopOpeBRep_LineInter &L)
 
bool CheckLine (TopOpeBRep_LineInter &L) const
 
void VP_Position (TopOpeBRep_FacesIntersector &FACINT)
 compute position of VPoints of lines
 
void VP_Position (TopOpeBRep_LineInter &L)
 compute position of VPoints of line L
 
void VP_PositionOnL (TopOpeBRep_LineInter &L)
 compute position of VPoints of non-restriction line L.
 
void VP_PositionOnR (TopOpeBRep_LineInter &L)
 compute position of VPoints of restriction line L.
 
void VP_Position (TopOpeBRep_VPointInter &VP, TopOpeBRep_VPointInterClassifier &VPC)
 compute position of VP with current faces, according to VP.ShapeIndex() .
 
void ProcessLine ()
 Process current intersection line (set by LoadLine)
 
void ResetDSC ()
 
void ProcessRLine ()
 Process current restriction line, adding restriction edge and computing face/edge interference.
 
void FillLineVPonR ()
 VP processing for restriction line and line sharing same domain with section edges:
 
void FillLine ()
 
void AddShapesLine ()
 compute 3d curve, pcurves and face/curve interferences for current NDSC. Add them to the DS.
 
void GetESL (NCollection_List< TopoDS_Shape > &LES)
 Get map <mapES > of restriction edges having parts IN one of the 2 faces.
 
void ProcessVPR (TopOpeBRep_FacesFiller &FF, const TopOpeBRep_VPointInter &VP)
 calling the following ProcessVPIonR and ProcessVPonR.
 
void ProcessVPIonR (TopOpeBRep_VPointInterIterator &VPI, const TopOpeBRepDS_Transition &trans1, const TopoDS_Shape &F1, const int ShapeIndex)
 processing ProcessVPonR for VPI.
 
void ProcessVPonR (const TopOpeBRep_VPointInter &VP, const TopOpeBRepDS_Transition &trans1, const TopoDS_Shape &F1, const int ShapeIndex)
 adds <VP>'s geometric point (if not stored) and computes (curve or edge)/(point or vertex) interference.
 
void ProcessVPonclosingR (const TopOpeBRep_VPointInter &VP, const TopoDS_Shape &F1, const int ShapeIndex, const TopOpeBRepDS_Transition &transEdge, const TopOpeBRepDS_Kind PVKind, const int PVIndex, const bool EPIfound, const occ::handle< TopOpeBRepDS_Interference > &IEPI)
 VP processing on closing arc.
 
bool ProcessVPondgE (const TopOpeBRep_VPointInter &VP, const int ShapeIndex, TopOpeBRepDS_Kind &PVKind, int &PVIndex, bool &EPIfound, occ::handle< TopOpeBRepDS_Interference > &IEPI, bool &CPIfound, occ::handle< TopOpeBRepDS_Interference > &ICPI)
 VP processing on degenerated arc.
 
void ProcessVPInotonR (TopOpeBRep_VPointInterIterator &VPI)
 processing ProcessVPnotonR for VPI.
 
void ProcessVPnotonR (const TopOpeBRep_VPointInter &VP)
 adds <VP>'s geometrical point to the DS (if not stored) and computes curve point interference.
 
bool GetGeometry (NCollection_List< occ::handle< TopOpeBRepDS_Interference > >::Iterator &IT, const TopOpeBRep_VPointInter &VP, int &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().
 
int MakeGeometry (const TopOpeBRep_VPointInter &VP, const int ShapeIndex, TopOpeBRepDS_Kind &K)
 
void StoreCurveInterference (const occ::handle< TopOpeBRepDS_Interference > &I)
 Add interference to list myDSCIL. on a given line, at first call, add a new DS curve.
 
bool GetFFGeometry (const TopOpeBRepDS_Point &DSP, TopOpeBRepDS_Kind &K, int &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).
 
bool GetFFGeometry (const TopOpeBRep_VPointInter &VP, TopOpeBRepDS_Kind &K, int &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).
 
TopOpeBRep_FacesIntersectorChangeFacesIntersector ()
 
occ::handle< TopOpeBRepDS_HDataStructureHDataStructure ()
 
TopOpeBRepDS_DataStructureChangeDataStructure ()
 
const TopoDS_FaceFace (const int I) const
 
const TopOpeBRepDS_TransitionFaceFaceTransition (const TopOpeBRep_LineInter &L, const int I) const
 
const TopOpeBRepDS_TransitionFaceFaceTransition (const int I) const
 
TopOpeBRep_PFacesIntersector PFacesIntersectorDummy () const
 
TopOpeBRepDS_PDataStructure PDataStructureDummy () const
 
TopOpeBRep_PLineInter PLineInterDummy () const
 
void SetTraceIndex (const int exF1, const int exF2)
 
void GetTraceIndex (int &exF1, int &exF2) const
 

Static Public Member Functions

static void Lminmax (const TopOpeBRep_LineInter &L, double &pmin, double &pmax)
 Computes <pmin> and <pmax> the upper and lower bounds of <L> enclosing all vpoints.
 
static bool LSameDomainERL (const TopOpeBRep_LineInter &L, const NCollection_List< TopoDS_Shape > &ERL)
 Returns <True> if <L> shares a same geometric domain with at least one of the section edges of <ERL>.
 
static bool IsVPtransLok (const TopOpeBRep_LineInter &L, const int iVP, const int SI12, TopOpeBRepDS_Transition &T)
 Computes the transition <T> of the VPoint <iVP> on the edge of <SI12>. Returns <False> if the status is unknown.
 
static bool TransvpOK (const TopOpeBRep_LineInter &L, const int iVP, const int SI, const bool 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.
 
static double VPParamOnER (const TopOpeBRep_VPointInter &vp, const TopOpeBRep_LineInter &Lrest)
 Returns parameter u of vp on the restriction edge.
 
static bool EqualpPonR (const TopOpeBRep_LineInter &Lrest, const TopOpeBRep_VPointInter &VP1, const TopOpeBRep_VPointInter &VP2)
 

Detailed Description

Fills a DataStructure from TopOpeBRepDS with the result of Face/Face intersection 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.

Constructor & Destructor Documentation

◆ TopOpeBRep_FacesFiller()

TopOpeBRep_FacesFiller::TopOpeBRep_FacesFiller ( )

Member Function Documentation

◆ AddShapesLine()

void TopOpeBRep_FacesFiller::AddShapesLine ( )

compute 3d curve, pcurves and face/curve interferences for current NDSC. Add them to the DS.

◆ ChangeDataStructure()

TopOpeBRepDS_DataStructure & TopOpeBRep_FacesFiller::ChangeDataStructure ( )

◆ ChangeFacesIntersector()

TopOpeBRep_FacesIntersector & TopOpeBRep_FacesFiller::ChangeFacesIntersector ( )

◆ ChangePointClassifier()

TopOpeBRep_PointClassifier & TopOpeBRep_FacesFiller::ChangePointClassifier ( )

◆ CheckLine()

bool TopOpeBRep_FacesFiller::CheckLine ( TopOpeBRep_LineInter & L) const

◆ EqualpPonR()

static bool TopOpeBRep_FacesFiller::EqualpPonR ( const TopOpeBRep_LineInter & Lrest,
const TopOpeBRep_VPointInter & VP1,
const TopOpeBRep_VPointInter & VP2 )
static

◆ Face()

const TopoDS_Face & TopOpeBRep_FacesFiller::Face ( const int I) const

◆ FaceFaceTransition() [1/2]

const TopOpeBRepDS_Transition & TopOpeBRep_FacesFiller::FaceFaceTransition ( const int I) const

◆ FaceFaceTransition() [2/2]

const TopOpeBRepDS_Transition & TopOpeBRep_FacesFiller::FaceFaceTransition ( const TopOpeBRep_LineInter & L,
const int I ) const

◆ FillLine()

void TopOpeBRep_FacesFiller::FillLine ( )

◆ FillLineVPonR()

void TopOpeBRep_FacesFiller::FillLineVPonR ( )

VP processing for restriction line and line sharing same domain with section edges:

  • if restriction: Adds restriction edges as section edges and compute face/edge interference.
  • if same domain: If line share same domain with section edges, compute parts of line IN/IN the two faces, and compute curve/point interference for VP boundaries.

◆ GetESL()

void TopOpeBRep_FacesFiller::GetESL ( NCollection_List< TopoDS_Shape > & LES)

Get map <mapES > of restriction edges having parts IN one of the 2 faces.

◆ GetFFGeometry() [1/2]

bool TopOpeBRep_FacesFiller::GetFFGeometry ( const TopOpeBRep_VPointInter & VP,
TopOpeBRepDS_Kind & K,
int & 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).

◆ GetFFGeometry() [2/2]

bool TopOpeBRep_FacesFiller::GetFFGeometry ( const TopOpeBRepDS_Point & DSP,
TopOpeBRepDS_Kind & K,
int & 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).

◆ GetGeometry()

bool TopOpeBRep_FacesFiller::GetGeometry ( NCollection_List< occ::handle< TopOpeBRepDS_Interference > >::Iterator & IT,
const TopOpeBRep_VPointInter & VP,
int & 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().

◆ GetTraceIndex()

void TopOpeBRep_FacesFiller::GetTraceIndex ( int & exF1,
int & exF2 ) const

◆ HDataStructure()

occ::handle< TopOpeBRepDS_HDataStructure > TopOpeBRep_FacesFiller::HDataStructure ( )

◆ Insert()

void TopOpeBRep_FacesFiller::Insert ( const TopoDS_Shape & F1,
const TopoDS_Shape & F2,
TopOpeBRep_FacesIntersector & FACINT,
const occ::handle< TopOpeBRepDS_HDataStructure > & HDS )

Stores in <DS> the intersections of <S1> and <S2>.

◆ IsVPtransLok()

static bool TopOpeBRep_FacesFiller::IsVPtransLok ( const TopOpeBRep_LineInter & L,
const int iVP,
const int SI12,
TopOpeBRepDS_Transition & T )
static

Computes the transition <T> of the VPoint <iVP> on the edge of <SI12>. Returns <False> if the status is unknown.

◆ Lminmax()

static void TopOpeBRep_FacesFiller::Lminmax ( const TopOpeBRep_LineInter & L,
double & pmin,
double & pmax )
static

Computes <pmin> and <pmax> the upper and lower bounds of <L> enclosing all vpoints.

◆ LoadLine()

void TopOpeBRep_FacesFiller::LoadLine ( TopOpeBRep_LineInter & L)

◆ LSameDomainERL()

static bool TopOpeBRep_FacesFiller::LSameDomainERL ( const TopOpeBRep_LineInter & L,
const NCollection_List< TopoDS_Shape > & ERL )
static

Returns <True> if <L> shares a same geometric domain with at least one of the section edges of <ERL>.

◆ MakeGeometry()

int TopOpeBRep_FacesFiller::MakeGeometry ( const TopOpeBRep_VPointInter & VP,
const int ShapeIndex,
TopOpeBRepDS_Kind & K )

◆ PDataStructureDummy()

TopOpeBRepDS_PDataStructure TopOpeBRep_FacesFiller::PDataStructureDummy ( ) const

◆ PFacesIntersectorDummy()

TopOpeBRep_PFacesIntersector TopOpeBRep_FacesFiller::PFacesIntersectorDummy ( ) const

◆ PLineInterDummy()

TopOpeBRep_PLineInter TopOpeBRep_FacesFiller::PLineInterDummy ( ) const

◆ ProcessLine()

void TopOpeBRep_FacesFiller::ProcessLine ( )

Process current intersection line (set by LoadLine)

◆ ProcessRLine()

void TopOpeBRep_FacesFiller::ProcessRLine ( )

Process current restriction line, adding restriction edge and computing face/edge interference.

◆ ProcessSectionEdges()

void TopOpeBRep_FacesFiller::ProcessSectionEdges ( )

◆ ProcessVPInotonR()

void TopOpeBRep_FacesFiller::ProcessVPInotonR ( TopOpeBRep_VPointInterIterator & VPI)

processing ProcessVPnotonR for VPI.

◆ ProcessVPIonR()

void TopOpeBRep_FacesFiller::ProcessVPIonR ( TopOpeBRep_VPointInterIterator & VPI,
const TopOpeBRepDS_Transition & trans1,
const TopoDS_Shape & F1,
const int ShapeIndex )

processing ProcessVPonR for VPI.

◆ ProcessVPnotonR()

void TopOpeBRep_FacesFiller::ProcessVPnotonR ( const TopOpeBRep_VPointInter & VP)

adds <VP>'s geometrical point to the DS (if not stored) and computes curve point interference.

◆ ProcessVPonclosingR()

void TopOpeBRep_FacesFiller::ProcessVPonclosingR ( const TopOpeBRep_VPointInter & VP,
const TopoDS_Shape & F1,
const int ShapeIndex,
const TopOpeBRepDS_Transition & transEdge,
const TopOpeBRepDS_Kind PVKind,
const int PVIndex,
const bool EPIfound,
const occ::handle< TopOpeBRepDS_Interference > & IEPI )

VP processing on closing arc.

◆ ProcessVPondgE()

bool TopOpeBRep_FacesFiller::ProcessVPondgE ( const TopOpeBRep_VPointInter & VP,
const int ShapeIndex,
TopOpeBRepDS_Kind & PVKind,
int & PVIndex,
bool & EPIfound,
occ::handle< TopOpeBRepDS_Interference > & IEPI,
bool & CPIfound,
occ::handle< TopOpeBRepDS_Interference > & ICPI )

VP processing on degenerated arc.

◆ ProcessVPonR()

void TopOpeBRep_FacesFiller::ProcessVPonR ( const TopOpeBRep_VPointInter & VP,
const TopOpeBRepDS_Transition & trans1,
const TopoDS_Shape & F1,
const int ShapeIndex )

adds <VP>'s geometric point (if not stored) and computes (curve or edge)/(point or vertex) interference.

◆ ProcessVPR()

void TopOpeBRep_FacesFiller::ProcessVPR ( TopOpeBRep_FacesFiller & FF,
const TopOpeBRep_VPointInter & VP )

calling the following ProcessVPIonR and ProcessVPonR.

◆ PShapeClassifier()

TopOpeBRepTool_PShapeClassifier TopOpeBRep_FacesFiller::PShapeClassifier ( ) const

return field myPShapeClassifier.

◆ ResetDSC()

void TopOpeBRep_FacesFiller::ResetDSC ( )

◆ SetPShapeClassifier()

void TopOpeBRep_FacesFiller::SetPShapeClassifier ( const TopOpeBRepTool_PShapeClassifier & PSC)

set field myPShapeClassifier.

◆ SetTraceIndex()

void TopOpeBRep_FacesFiller::SetTraceIndex ( const int exF1,
const int exF2 )

◆ StoreCurveInterference()

void TopOpeBRep_FacesFiller::StoreCurveInterference ( const occ::handle< TopOpeBRepDS_Interference > & I)

Add interference to list myDSCIL. on a given line, at first call, add a new DS curve.

◆ TransvpOK()

static bool TopOpeBRep_FacesFiller::TransvpOK ( const TopOpeBRep_LineInter & L,
const int iVP,
const int SI,
const bool isINOUT )
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.

◆ VP_Position() [1/3]

void TopOpeBRep_FacesFiller::VP_Position ( TopOpeBRep_FacesIntersector & FACINT)

compute position of VPoints of lines

◆ VP_Position() [2/3]

void TopOpeBRep_FacesFiller::VP_Position ( TopOpeBRep_LineInter & L)

compute position of VPoints of line L

◆ VP_Position() [3/3]

void TopOpeBRep_FacesFiller::VP_Position ( TopOpeBRep_VPointInter & VP,
TopOpeBRep_VPointInterClassifier & VPC )

compute position of VP with current faces, according to VP.ShapeIndex() .

◆ VP_PositionOnL()

void TopOpeBRep_FacesFiller::VP_PositionOnL ( TopOpeBRep_LineInter & L)

compute position of VPoints of non-restriction line L.

◆ VP_PositionOnR()

void TopOpeBRep_FacesFiller::VP_PositionOnR ( TopOpeBRep_LineInter & L)

compute position of VPoints of restriction line L.

◆ VPParamOnER()

static double TopOpeBRep_FacesFiller::VPParamOnER ( const TopOpeBRep_VPointInter & vp,
const TopOpeBRep_LineInter & Lrest )
static

Returns parameter u of vp on the restriction edge.


The documentation for this class was generated from the following file: