Open CASCADE Technology 6.5.2
Public Member Functions | Static Public Member Functions
TopOpeBRep_FacesFiller Class Reference

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.

#include <TopOpeBRep_FacesFiller.hxx>

Public Member Functions

void * operator new (size_t, void *anAddress)
void * operator new (size_t size)
void operator delete (void *anAddress)
 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>.

void ProcessSectionEdges ()
TopOpeBRep_PointClassifier & ChangePointClassifier ()
TopOpeBRepTool_PShapeClassifier PShapeClassifier () const
 return field myPShapeClassifier.

void SetPShapeClassifier (const TopOpeBRepTool_PShapeClassifier &PSC)
 set field myPShapeClassifier.

void LoadLine (TopOpeBRep_LineInter &L)
Standard_Boolean 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 (TopTools_ListOfShape &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 followings ProcessVPIonR and ProcessVPonR.

void ProcessVPIonR (TopOpeBRep_VPointInterIterator &VPI, const TopOpeBRepDS_Transition &trans1, const TopoDS_Shape &F1, const Standard_Integer ShapeIndex)
 processing ProcessVPonR for VPI.

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.

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.

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.

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.

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().

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.

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).

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).

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.

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>.

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.

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.

static Standard_Real VPParamOnER (const TopOpeBRep_VPointInter &vp, const TopOpeBRep_LineInter &Lrest)
 Returns parameter u of vp on the restriction edge.

static Standard_Boolean EqualpPonR (const TopOpeBRep_LineInter &Lrest, const TopOpeBRep_VPointInter &VP1, const TopOpeBRep_VPointInter &VP2)
static Standard_Boolean EqualpP (const TopOpeBRep_LineInter &L, const Standard_Integer iVP1, const Standard_Integer iVP2)

Constructor & Destructor Documentation

TopOpeBRep_FacesFiller::TopOpeBRep_FacesFiller ( )

Member Function Documentation

void TopOpeBRep_FacesFiller::AddShapesLine ( )
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 Standard_Boolean TopOpeBRep_FacesFiller::EqualpP ( const TopOpeBRep_LineInter &  L,
const Standard_Integer  iVP1,
const Standard_Integer  iVP2 
) [static]
static Standard_Boolean TopOpeBRep_FacesFiller::EqualpPonR ( const TopOpeBRep_LineInter &  Lrest,
const TopOpeBRep_VPointInter &  VP1,
const TopOpeBRep_VPointInter &  VP2 
) [static]
const TopoDS_Face& TopOpeBRep_FacesFiller::Face ( const Standard_Integer  I) const
const TopOpeBRepDS_Transition& TopOpeBRep_FacesFiller::FaceFaceTransition ( const TopOpeBRep_LineInter &  L,
const Standard_Integer  I 
) const
const TopOpeBRepDS_Transition& TopOpeBRep_FacesFiller::FaceFaceTransition ( const Standard_Integer  I) const
void TopOpeBRep_FacesFiller::FillLine ( )
void TopOpeBRep_FacesFiller::FillLineVPonR ( )
  • 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.
void TopOpeBRep_FacesFiller::GetESL ( TopTools_ListOfShape &  LES)
Standard_Boolean TopOpeBRep_FacesFiller::GetFFGeometry ( const TopOpeBRepDS_Point &  DSP,
TopOpeBRepDS_Kind &  K,
Standard_Integer &  G 
) const
Standard_Boolean TopOpeBRep_FacesFiller::GetFFGeometry ( const TopOpeBRep_VPointInter &  VP,
TopOpeBRepDS_Kind &  K,
Standard_Integer &  G 
) const
Standard_Boolean TopOpeBRep_FacesFiller::GetGeometry ( TopOpeBRepDS_ListIteratorOfListOfInterference &  IT,
const TopOpeBRep_VPointInter &  VP,
Standard_Integer &  G,
TopOpeBRepDS_Kind &  K 
)
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 
)
static Standard_Boolean TopOpeBRep_FacesFiller::IsVPtransLok ( const TopOpeBRep_LineInter &  L,
const Standard_Integer  iVP,
const Standard_Integer  SI12,
TopOpeBRepDS_Transition &  T 
) [static]
static void TopOpeBRep_FacesFiller::Lminmax ( const TopOpeBRep_LineInter &  L,
Standard_Real &  pmin,
Standard_Real &  pmax 
) [static]
void TopOpeBRep_FacesFiller::LoadLine ( TopOpeBRep_LineInter &  L)
static Standard_Boolean TopOpeBRep_FacesFiller::LSameDomainERL ( const TopOpeBRep_LineInter &  L,
const TopTools_ListOfShape &  ERL 
) [static]
Standard_Integer TopOpeBRep_FacesFiller::MakeGeometry ( const TopOpeBRep_VPointInter &  VP,
const Standard_Integer  ShapeIndex,
TopOpeBRepDS_Kind &  K 
)
void TopOpeBRep_FacesFiller::operator delete ( void *  anAddress) [inline]
void* TopOpeBRep_FacesFiller::operator new ( size_t  size) [inline]
void* TopOpeBRep_FacesFiller::operator new ( size_t  ,
void *  anAddress 
) [inline]
TopOpeBRepDS_PDataStructure TopOpeBRep_FacesFiller::PDataStructureDummy ( ) const
TopOpeBRep_PFacesIntersector TopOpeBRep_FacesFiller::PFacesIntersectorDummy ( ) const
TopOpeBRep_PLineInter TopOpeBRep_FacesFiller::PLineInterDummy ( ) const
void TopOpeBRep_FacesFiller::ProcessLine ( )
void TopOpeBRep_FacesFiller::ProcessRLine ( )
void TopOpeBRep_FacesFiller::ProcessSectionEdges ( )
void TopOpeBRep_FacesFiller::ProcessVPInotonR ( TopOpeBRep_VPointInterIterator &  VPI)
void TopOpeBRep_FacesFiller::ProcessVPIonR ( TopOpeBRep_VPointInterIterator &  VPI,
const TopOpeBRepDS_Transition &  trans1,
const TopoDS_Shape &  F1,
const Standard_Integer  ShapeIndex 
)
void TopOpeBRep_FacesFiller::ProcessVPnotonR ( const TopOpeBRep_VPointInter &  VP)
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 
)
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 
)
void TopOpeBRep_FacesFiller::ProcessVPonR ( const TopOpeBRep_VPointInter &  VP,
const TopOpeBRepDS_Transition &  trans1,
const TopoDS_Shape &  F1,
const Standard_Integer  ShapeIndex 
)
void TopOpeBRep_FacesFiller::ProcessVPR ( TopOpeBRep_FacesFiller &  FF,
const TopOpeBRep_VPointInter &  VP 
)
TopOpeBRepTool_PShapeClassifier TopOpeBRep_FacesFiller::PShapeClassifier ( ) const
void TopOpeBRep_FacesFiller::ResetDSC ( )
void TopOpeBRep_FacesFiller::SetPShapeClassifier ( const TopOpeBRepTool_PShapeClassifier &  PSC)
void TopOpeBRep_FacesFiller::SetTraceIndex ( const Standard_Integer  exF1,
const Standard_Integer  exF2 
)
void TopOpeBRep_FacesFiller::StoreCurveInterference ( const Handle< TopOpeBRepDS_Interference > &  I)
static Standard_Boolean TopOpeBRep_FacesFiller::TransvpOK ( const TopOpeBRep_LineInter &  L,
const Standard_Integer  iVP,
const Standard_Integer  SI,
const Standard_Boolean  isINOUT 
) [static]
void TopOpeBRep_FacesFiller::VP_Position ( TopOpeBRep_FacesIntersector &  FACINT)
void TopOpeBRep_FacesFiller::VP_Position ( TopOpeBRep_LineInter &  L)
void TopOpeBRep_FacesFiller::VP_Position ( TopOpeBRep_VPointInter &  VP,
TopOpeBRep_VPointInterClassifier &  VPC 
)
void TopOpeBRep_FacesFiller::VP_PositionOnL ( TopOpeBRep_LineInter &  L)
void TopOpeBRep_FacesFiller::VP_PositionOnR ( TopOpeBRep_LineInter &  L)
static Standard_Real TopOpeBRep_FacesFiller::VPParamOnER ( const TopOpeBRep_VPointInter &  vp,
const TopOpeBRep_LineInter &  Lrest 
) [static]

The documentation for this class was generated from the following file:
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines