Open CASCADE Technology
7.6.0.dev

Construction of the section lines between two shapes. For this Boolean operation, each face of the first shape is intersected by each face of the second shape. The resulting intersection edges are brought together into a compound object, but not chained or grouped into wires. Computation of the intersection of two Shapes or Surfaces The two parts involved in this Boolean operation may be defined from geometric surfaces: the most common use is the computation of the planar section of a shape. A Section object provides the framework for: More...
#include <BRepAlgo_Section.hxx>
Public Member Functions  
BRepAlgo_Section (const TopoDS_Shape &Sh1, const TopoDS_Shape &Sh2, const Standard_Boolean PerformNow=Standard_True)  
BRepAlgo_Section (const TopoDS_Shape &Sh, const gp_Pln &Pl, const Standard_Boolean PerformNow=Standard_True)  
BRepAlgo_Section (const TopoDS_Shape &Sh, const Handle< Geom_Surface > &Sf, const Standard_Boolean PerformNow=Standard_True)  
BRepAlgo_Section (const Handle< Geom_Surface > &Sf, const TopoDS_Shape &Sh, const Standard_Boolean PerformNow=Standard_True)  
BRepAlgo_Section (const Handle< Geom_Surface > &Sf1, const Handle< Geom_Surface > &Sf2, const Standard_Boolean PerformNow=Standard_True)  
This and the above algorithms construct a framework for computing the section lines of. More...  
void  Init1 (const TopoDS_Shape &S1) 
Initializes the first part. More...  
void  Init1 (const gp_Pln &Pl) 
Initializes the first part. More...  
void  Init1 (const Handle< Geom_Surface > &Sf) 
Initializes the first part. More...  
void  Init2 (const TopoDS_Shape &S2) 
initialize second part More...  
void  Init2 (const gp_Pln &Pl) 
Initializes the second part. More...  
void  Init2 (const Handle< Geom_Surface > &Sf) 
This and the above algorithms reinitialize the first and the second parts on which this algorithm is going to perform the intersection computation. This is done with either: the surface Sf, the plane Pl or the shape Sh. You use the function Build to construct the result. More...  
void  Approximation (const Standard_Boolean B) 
Defines an option for computation of further intersections. This computation will be performed by the function Build in this framework. By default, the underlying 3D geometry attached to each elementary edge of the result of a computed intersection is: More...  
void  ComputePCurveOn1 (const Standard_Boolean B) 
Indicates if the Pcurve must be (or not) performed on first part. More...  
void  ComputePCurveOn2 (const Standard_Boolean B) 
Define options for the computation of further intersections which will be performed by the function Build in this framework. By default, no parametric 2D curve (pcurve) is defined for the elementary edges of the result. If ComputePCurve1 equals true, further computations performed in this framework with the function Build will attach an additional pcurve in the parametric space of the first shape to the constructed edges. If ComputePCurve2 equals true, the additional pcurve will be attached to the constructed edges in the parametric space of the second shape. These two functions may be used together. Note that as a result, pcurves will only be added onto edges built on new intersection lines. More...  
void  Build () override 
Performs the computation of the section lines between the two parts defined at the time of construction of this framework or reinitialized with the Init1 and Init2 functions. The constructed shape will be returned by the function Shape. This is a compound object composed of edges. These intersection edges may be built: More...  
Standard_Boolean  HasAncestorFaceOn1 (const TopoDS_Shape &E, TopoDS_Shape &F) const 
Identifies the ancestor faces of the new intersection edge E resulting from the last computation performed in this framework, that is, the faces of the two original shapes on which the edge E lies: More...  
Standard_Boolean  HasAncestorFaceOn2 (const TopoDS_Shape &E, TopoDS_Shape &F) const 
Identifies the ancestor faces of the new intersection edge E resulting from the last computation performed in this framework, that is, the faces of the two original shapes on which the edge E lies: More...  
Public Member Functions inherited from BRepAlgo_BooleanOperation  
virtual  ~BRepAlgo_BooleanOperation () 
void  PerformDS () 
void  Perform (const TopAbs_State St1, const TopAbs_State St2) 
Handle< TopOpeBRepBuild_HBuilder >  Builder () const 
const TopoDS_Shape &  Shape1 () const 
Returns the first shape involved in this Boolean operation. More...  
const TopoDS_Shape &  Shape2 () const 
Returns the second shape involved in this Boolean operation. More...  
virtual const TopTools_ListOfShape &  Modified (const TopoDS_Shape &S) override 
Returns the list of shapes modified from the shape <S>. More...  
virtual Standard_Boolean  IsDeleted (const TopoDS_Shape &S) override 
Returns true if the shape S has been deleted. More...  
Public Member Functions inherited from BRepBuilderAPI_MakeShape  
virtual const TopoDS_Shape &  Shape () 
Returns a shape built by the shape construction algorithm. Raises exception StdFail_NotDone if the shape was not built. More...  
operator TopoDS_Shape ()  
virtual const TopTools_ListOfShape &  Generated (const TopoDS_Shape &S) 
Returns the list of shapes generated from the shape <S>. More...  
Public Member Functions inherited from BRepBuilderAPI_Command  
virtual  ~BRepBuilderAPI_Command () 
virtual Standard_Boolean  IsDone () const 
void  Check () const 
Raises NotDone if done is false. More...  
Additional Inherited Members  
Protected Member Functions inherited from BRepAlgo_BooleanOperation  
BRepAlgo_BooleanOperation (const TopoDS_Shape &S1, const TopoDS_Shape &S2)  
Prepares the operations for S1 and S2. More...  
void  BuilderCanWork (const Standard_Boolean B) 
Standard_Boolean  BuilderCanWork () const 
Protected Member Functions inherited from BRepBuilderAPI_MakeShape  
BRepBuilderAPI_MakeShape ()  
Protected Member Functions inherited from BRepBuilderAPI_Command  
BRepBuilderAPI_Command ()  
Set done to False. More...  
void  Done () 
Set done to true. More...  
void  NotDone () 
Set done to false. More...  
Protected Attributes inherited from BRepAlgo_BooleanOperation  
Handle< TopOpeBRepBuild_HBuilder >  myHBuilder 
TopoDS_Shape  myS1 
TopoDS_Shape  myS2 
Protected Attributes inherited from BRepBuilderAPI_MakeShape  
TopoDS_Shape  myShape 
TopTools_ListOfShape  myGenerated 
Construction of the section lines between two shapes. For this Boolean operation, each face of the first shape is intersected by each face of the second shape. The resulting intersection edges are brought together into a compound object, but not chained or grouped into wires. Computation of the intersection of two Shapes or Surfaces The two parts involved in this Boolean operation may be defined from geometric surfaces: the most common use is the computation of the planar section of a shape. A Section object provides the framework for:
BRepAlgo_Section::BRepAlgo_Section  (  const TopoDS_Shape &  Sh1, 
const TopoDS_Shape &  Sh2,  
const Standard_Boolean  PerformNow = Standard_True 

) 
BRepAlgo_Section::BRepAlgo_Section  (  const TopoDS_Shape &  Sh, 
const gp_Pln &  Pl,  
const Standard_Boolean  PerformNow = Standard_True 

) 
BRepAlgo_Section::BRepAlgo_Section  (  const TopoDS_Shape &  Sh, 
const Handle< Geom_Surface > &  Sf,  
const Standard_Boolean  PerformNow = Standard_True 

) 
BRepAlgo_Section::BRepAlgo_Section  (  const Handle< Geom_Surface > &  Sf, 
const TopoDS_Shape &  Sh,  
const Standard_Boolean  PerformNow = Standard_True 

) 
BRepAlgo_Section::BRepAlgo_Section  (  const Handle< Geom_Surface > &  Sf1, 
const Handle< Geom_Surface > &  Sf2,  
const Standard_Boolean  PerformNow = Standard_True 

) 
This and the above algorithms construct a framework for computing the section lines of.
void BRepAlgo_Section::Approximation  (  const Standard_Boolean  B  ) 
Defines an option for computation of further intersections. This computation will be performed by the function Build in this framework. By default, the underlying 3D geometry attached to each elementary edge of the result of a computed intersection is:

overridevirtual 
Performs the computation of the section lines between the two parts defined at the time of construction of this framework or reinitialized with the Init1 and Init2 functions. The constructed shape will be returned by the function Shape. This is a compound object composed of edges. These intersection edges may be built:
Reimplemented from BRepBuilderAPI_MakeShape.
void BRepAlgo_Section::ComputePCurveOn1  (  const Standard_Boolean  B  ) 
Indicates if the Pcurve must be (or not) performed on first part.
void BRepAlgo_Section::ComputePCurveOn2  (  const Standard_Boolean  B  ) 
Define options for the computation of further intersections which will be performed by the function Build in this framework. By default, no parametric 2D curve (pcurve) is defined for the elementary edges of the result. If ComputePCurve1 equals true, further computations performed in this framework with the function Build will attach an additional pcurve in the parametric space of the first shape to the constructed edges. If ComputePCurve2 equals true, the additional pcurve will be attached to the constructed edges in the parametric space of the second shape. These two functions may be used together. Note that as a result, pcurves will only be added onto edges built on new intersection lines.
Standard_Boolean BRepAlgo_Section::HasAncestorFaceOn1  (  const TopoDS_Shape &  E, 
TopoDS_Shape &  F  
)  const 
Identifies the ancestor faces of the new intersection edge E resulting from the last computation performed in this framework, that is, the faces of the two original shapes on which the edge E lies:
Standard_Boolean BRepAlgo_Section::HasAncestorFaceOn2  (  const TopoDS_Shape &  E, 
TopoDS_Shape &  F  
)  const 
Identifies the ancestor faces of the new intersection edge E resulting from the last computation performed in this framework, that is, the faces of the two original shapes on which the edge E lies:
void BRepAlgo_Section::Init1  (  const TopoDS_Shape &  S1  ) 
Initializes the first part.
void BRepAlgo_Section::Init1  (  const gp_Pln &  Pl  ) 
Initializes the first part.
void BRepAlgo_Section::Init1  (  const Handle< Geom_Surface > &  Sf  ) 
Initializes the first part.
void BRepAlgo_Section::Init2  (  const TopoDS_Shape &  S2  ) 
initialize second part
void BRepAlgo_Section::Init2  (  const gp_Pln &  Pl  ) 
Initializes the second part.
void BRepAlgo_Section::Init2  (  const Handle< Geom_Surface > &  Sf  ) 
This and the above algorithms reinitialize the first and the second parts on which this algorithm is going to perform the intersection computation. This is done with either: the surface Sf, the plane Pl or the shape Sh. You use the function Build to construct the result.