OCCT3D OCCT 8.0.1
OCCT documentation

Search guides and API reference

Enter at least two characters.

    Open CASCADE Technology Reference Manual 8.0.1
    BRepAlgoAPI_BooleanOperation Class Reference

    The root API class for performing Boolean Operations on arbitrary shapes. More...

    #include <BRepAlgoAPI_BooleanOperation.hxx>

    Inheritance diagram for BRepAlgoAPI_BooleanOperation:

    Public Member Functions

    Setting/getting arguments

    Returns the first argument involved in this Boolean operation. Obsolete

    const TopoDS_ShapeShape1 () const
     Returns the second argument involved in this Boolean operation. Obsolete.
    const TopoDS_ShapeShape2 () const
     Returns the second argument involved in this Boolean operation. Obsolete.
    void SetTools (const NCollection_List< TopoDS_Shape > &theLS)
     Sets the Tool arguments.
    const NCollection_List< TopoDS_Shape > & Tools () const
     Returns the Tools arguments.
    Setting/Getting the type of Boolean operation

    Sets the type of Boolean operation

    void SetOperation (const BOPAlgo_Operation theBOP)
     Returns the type of Boolean Operation.
    BOPAlgo_Operation Operation () const
     Returns the type of Boolean Operation.
    Performing the operation

    Performs the Boolean operation.

    void Build (const Message_ProgressRange &theRange=Message_ProgressRange()) override
     This is called by Shape(). It does nothing but may be redefined.
    Public Member Functions inherited from BRepAlgoAPI_BuilderAlgo
     BRepAlgoAPI_BuilderAlgo ()
     Constructor with prepared Filler object.
     ~BRepAlgoAPI_BuilderAlgo () override
     Constructor with prepared Filler object.
     BRepAlgoAPI_BuilderAlgo (const BOPAlgo_PaveFiller &thePF)
     Constructor with prepared Filler object.
     BRepAlgoAPI_BuilderAlgo (const BRepAlgoAPI_BuilderAlgo &)=delete
     Copy constructor is not allowed.
     BRepAlgoAPI_BuilderAlgo (BRepAlgoAPI_BuilderAlgo &&)=delete
     Move constructor is not allowed.
    BRepAlgoAPI_BuilderAlgooperator= (const BRepAlgoAPI_BuilderAlgo &)=delete
     Copy assignment is not allowed.
    BRepAlgoAPI_BuilderAlgooperator= (BRepAlgoAPI_BuilderAlgo &&)=delete
     Move assignment is not allowed.
    void SetArguments (const NCollection_List< TopoDS_Shape > &theLS)
     Gets the arguments.
    const NCollection_List< TopoDS_Shape > & Arguments () const
     Gets the arguments.
    void SetNonDestructive (const bool theFlag)
     Returns the flag that defines the mode of treatment. In non-destructive mode the argument shapes are not modified. Instead a copy of a sub-shape is created in the result if it is needed to be updated.
    bool NonDestructive () const
     Returns the flag that defines the mode of treatment. In non-destructive mode the argument shapes are not modified. Instead a copy of a sub-shape is created in the result if it is needed to be updated.
    void SetGlue (const BOPAlgo_GlueEnum theGlue)
     Sets the glue option for the algorithm, which allows increasing performance of the intersection of the input shapes.
    BOPAlgo_GlueEnum Glue () const
     Returns the glue option of the algorithm.
    void SetCheckInverted (const bool theCheck)
     Enables/Disables the check of the input solids for inverted status.
    bool CheckInverted () const
     Returns the flag defining whether the check for input solids on inverted status should be performed or not.
    void Build (const Message_ProgressRange &theRange=Message_ProgressRange()) override
     This is called by Shape(). It does nothing but may be redefined.
    void SimplifyResult (const bool theUnifyEdges=true, const bool theUnifyFaces=true, const double theAngularTol=Precision::Angular())
    const NCollection_List< TopoDS_Shape > & Modified (const TopoDS_Shape &theS) override
     Returns the list of shapes generated from the shape <theS>. In frames of Boolean Operations algorithms only Edges and Faces could have Generated elements, as only they produce new elements during intersection:
    const NCollection_List< TopoDS_Shape > & Generated (const TopoDS_Shape &theS) override
     Returns the list of shapes generated from the shape <theS>. In frames of Boolean Operations algorithms only Edges and Faces could have Generated elements, as only they produce new elements during intersection:
    bool IsDeleted (const TopoDS_Shape &aS) override
     Checks if the shape <theS> has been completely removed from the result, i.e. the result does not contain the shape itself and any of its splits. Returns TRUE if the shape has been deleted.
    virtual bool HasModified () const
     Returns true if any of the input shapes has been modified during operation.
    virtual bool HasGenerated () const
     Returns true if any of the input shapes has generated shapes during operation.
    virtual bool HasDeleted () const
     Returns true if any of the input shapes has been deleted during operation. Normally, General Fuse operation should not have Deleted elements, but all derived operation can have.
    void SetToFillHistory (const bool theHistFlag)
     Returns flag of history availability.
    bool HasHistory () const
     Returns flag of history availability.
    const NCollection_List< TopoDS_Shape > & SectionEdges ()
    const BOPAlgo_PPaveFillerDSFiller () const
     Returns the Building tool.
    const BOPAlgo_PBuilderBuilder () const
     Returns the Building tool.
    occ::handle< BRepTools_HistoryHistory () const
     History tool.
    Public Member Functions inherited from BRepAlgoAPI_Algo
    const TopoDS_ShapeShape () override
     Returns a shape built by the shape construction algorithm. Does not check if the shape is built.
    void ClearWarnings ()
     Clears the warnings of the algorithm.
    void DumpErrors (Standard_OStream &theOS) const
     Dumps the error status into the given stream.
    void DumpWarnings (Standard_OStream &theOS) const
     Dumps the warning statuses into the given stream.
    double FuzzyValue () const
     Returns the additional tolerance.
    const occ::handle< Message_Report > & GetReport () const
     Returns report collecting all errors and warnings.
    bool HasError (const occ::handle< Standard_Type > &theType) const
     Returns true if algorithm has generated error of specified type.
    bool HasErrors () const
     Returns true if algorithm has failed.
    bool HasWarning (const occ::handle< Standard_Type > &theType) const
     Returns true if algorithm has generated warning of specified type.
    bool HasWarnings () const
     Returns true if algorithm has generated some warning alerts.
    bool RunParallel () const
     Returns the flag of parallel processing.
    void SetFuzzyValue (const double theFuzz)
     Sets the additional tolerance.
    void SetRunParallel (const bool theFlag)
     Set the flag of parallel processing if <theFlag> is true the parallel processing is switched on if <theFlag> is false the parallel processing is switched off.
    void SetUseOBB (const bool theUseOBB)
     Enables/Disables the usage of OBB.
    Public Member Functions inherited from BRepBuilderAPI_MakeShape
     operator TopoDS_Shape ()
    Public Member Functions inherited from BRepBuilderAPI_Command
    virtual ~BRepBuilderAPI_Command ()
    virtual bool IsDone () const
    void Check () const
     Raises NotDone if done is false.

    Protected Attributes

    Fields
    NCollection_List< TopoDS_ShapemyTools
     Tool arguments of operation.
    BOPAlgo_Operation myOperation
     Type of Boolean Operation.
    Protected Attributes inherited from BRepAlgoAPI_BuilderAlgo
    NCollection_List< TopoDS_ShapemyArguments
     Arguments of the operation.
    bool myNonDestructive
     Non-destructive mode management.
    BOPAlgo_GlueEnum myGlue
     Gluing mode management.
    bool myCheckInverted
     Check for inverted solids management.
    bool myFillHistory
     Controls the history collection.
    bool myIsIntersectionNeeded
     Flag to control whether the intersection of arguments should be performed or not.
    BOPAlgo_PPaveFiller myDSFiller
     Intersection tool performs intersection of the argument shapes.
    BOPAlgo_PBuilder myBuilder
     Building tool performs construction of the result basing on the results of intersection.
    occ::handle< BRepTools_HistorymyHistory
     General History tool, containing all History of shapes modifications during the operation (including result simplification).
    occ::handle< BRepTools_HistorymySimplifierHistory
     History of result shape simplification.
    Protected Attributes inherited from BRepBuilderAPI_MakeShape
    TopoDS_Shape myShape
    NCollection_List< TopoDS_ShapemyGenerated
    occ::handle< NCollection_BaseAllocatormyAllocator
     Enables/Disables the usage of OBB.
    occ::handle< Message_ReportmyReport
     Enables/Disables the usage of OBB.
    bool myRunParallel
     Enables/Disables the usage of OBB.
    double myFuzzyValue
     Enables/Disables the usage of OBB.
    bool myUseOBB
     Enables/Disables the usage of OBB.

    Constructors

    Constructor to perform Boolean operation on only two arguments. Obsolete

     BRepAlgoAPI_BooleanOperation ()
     Constructor with precomputed intersections of arguments.
     BRepAlgoAPI_BooleanOperation (const BOPAlgo_PaveFiller &thePF)
     Constructor with precomputed intersections of arguments.
     BRepAlgoAPI_BooleanOperation (const TopoDS_Shape &theS1, const TopoDS_Shape &theS2, const BOPAlgo_Operation theOperation)
     Constructor with precomputed intersections of arguments.
     BRepAlgoAPI_BooleanOperation (const TopoDS_Shape &theS1, const TopoDS_Shape &theS2, const BOPAlgo_PaveFiller &thePF, const BOPAlgo_Operation theOperation)
     Constructor to perform Boolean operation on only two arguments with precomputed intersection results. Obsolete.

    Additional Inherited Members

    Protected Member Functions inherited from BRepAlgoAPI_BuilderAlgo
    virtual void SetAttributes ()
    void IntersectShapes (const NCollection_List< TopoDS_Shape > &theArgs, const Message_ProgressRange &theRange)
     Builds the resulting shape.
    void BuildResult (const Message_ProgressRange &theRange=Message_ProgressRange())
     Builds the resulting shape.
    void Clear () override
     Clears all warnings and errors, and any data cached by the algorithm. User defined options are not cleared.
    Protected Member Functions inherited from BRepAlgoAPI_Algo
     BRepAlgoAPI_Algo ()
     Empty constructor.
     ~BRepAlgoAPI_Algo () override
     Destructor.
     BRepAlgoAPI_Algo (const occ::handle< NCollection_BaseAllocator > &theAllocator)
     Empty constructor.
    Protected Member Functions inherited from BRepBuilderAPI_MakeShape
     BRepBuilderAPI_MakeShape ()
    Protected Member Functions inherited from BRepBuilderAPI_Command
     BRepBuilderAPI_Command ()
     Set done to False.
    void Done ()
     Set done to true.
    void NotDone ()
     Set done to false.
    bool UserBreak (const Message_ProgressScope &thePS)
     Adds error to the report if the break signal was caught. Returns true in this case, false otherwise.
     BOPAlgo_Options ()
     Empty constructor.
     BOPAlgo_Options (const occ::handle< NCollection_BaseAllocator > &theAllocator)
     Constructor with allocator.
    virtual ~BOPAlgo_Options ()
     Destructor.
    const occ::handle< NCollection_BaseAllocator > & Allocator () const
     Returns allocator.
    void AddError (const occ::handle< Message_Alert > &theAlert)
     Adds the alert as error (fail).
    void AddWarning (const occ::handle< Message_Alert > &theAlert)
     Adds the alert as warning.
    bool HasErrors () const
     Returns true if algorithm has failed.
    bool HasError (const occ::handle< Standard_Type > &theType) const
     Returns true if algorithm has generated error of specified type.
    bool HasWarnings () const
     Returns true if algorithm has generated some warning alerts.
    bool HasWarning (const occ::handle< Standard_Type > &theType) const
     Returns true if algorithm has generated warning of specified type.
    const occ::handle< Message_Report > & GetReport () const
     Returns report collecting all errors and warnings.
    void DumpErrors (Standard_OStream &theOS) const
     Dumps the error status into the given stream.
    void DumpWarnings (Standard_OStream &theOS) const
     Dumps the warning statuses into the given stream.
    void ClearWarnings ()
     Clears the warnings of the algorithm.
    void SetFuzzyValue (const double theFuzz)
     Sets the additional tolerance.
    double FuzzyValue () const
     Returns the additional tolerance.
    void SetUseOBB (const bool theUseOBB)
     Enables/Disables the usage of OBB.
    bool UseOBB () const
     Returns the flag defining usage of OBB.
    void SetRunParallel (const bool theFlag)
     Set the flag of parallel processing if <theFlag> is true the parallel processing is switched on if <theFlag> is false the parallel processing is switched off.
    bool RunParallel () const
     Returns the flag of parallel processing.
    static bool GetParallelMode ()
     Gets the global parallel mode.
    static void SetParallelMode (const bool theNewMode)
     Sets the global parallel mode.

    Detailed Description

    The root API class for performing Boolean Operations on arbitrary shapes.

    The arguments of the operation are divided in two groups - Objects and Tools. Each group can contain any number of shapes, but each shape should be valid in terms of BRepCheck_Analyzer and BOPAlgo_ArgumentAnalyzer. The algorithm builds the splits of the given arguments using the intersection results and combines the result of Boolean Operation of given type:

    • FUSE - union of two groups of objects;
    • COMMON - intersection of two groups of objects;
    • CUT - subtraction of one group from the other;
    • SECTION - section edges and vertices of all arguments;

    The rules for the arguments and type of the operation are the following:

    • For Boolean operation FUSE all arguments should have equal dimensions;
    • For Boolean operation CUT the minimal dimension of Tools should not be less than the maximal dimension of Objects;
    • For Boolean operation COMMON the arguments can have any dimension.
    • For Boolean operation SECTION the arguments can be of any type.

    Additionally to the errors of the base class the algorithm returns the following Errors:

    • BOPAlgo_AlertBOPNotSet - in case the type of Boolean Operation is not set.

    Constructor & Destructor Documentation

    ◆ BRepAlgoAPI_BooleanOperation() [1/4]

    BRepAlgoAPI_BooleanOperation::BRepAlgoAPI_BooleanOperation ( )

    Constructor with precomputed intersections of arguments.

    ◆ BRepAlgoAPI_BooleanOperation() [2/4]

    BRepAlgoAPI_BooleanOperation::BRepAlgoAPI_BooleanOperation ( const BOPAlgo_PaveFiller & thePF)

    Constructor with precomputed intersections of arguments.

    ◆ BRepAlgoAPI_BooleanOperation() [3/4]

    BRepAlgoAPI_BooleanOperation::BRepAlgoAPI_BooleanOperation ( const TopoDS_Shape & theS1,
    const TopoDS_Shape & theS2,
    const BOPAlgo_Operation theOperation )
    protected

    Constructor with precomputed intersections of arguments.

    ◆ BRepAlgoAPI_BooleanOperation() [4/4]

    BRepAlgoAPI_BooleanOperation::BRepAlgoAPI_BooleanOperation ( const TopoDS_Shape & theS1,
    const TopoDS_Shape & theS2,
    const BOPAlgo_PaveFiller & thePF,
    const BOPAlgo_Operation theOperation )
    protected

    Constructor to perform Boolean operation on only two arguments with precomputed intersection results. Obsolete.

    Member Function Documentation

    ◆ Build()

    void BRepAlgoAPI_BooleanOperation::Build ( const Message_ProgressRange & theRange = Message_ProgressRange())
    overridevirtual

    This is called by Shape(). It does nothing but may be redefined.

    Reimplemented from BRepBuilderAPI_MakeShape.

    Reimplemented in BRepAlgoAPI_Section.

    ◆ Operation()

    BOPAlgo_Operation BRepAlgoAPI_BooleanOperation::Operation ( ) const
    inline

    Returns the type of Boolean Operation.

    ◆ SetOperation()

    void BRepAlgoAPI_BooleanOperation::SetOperation ( const BOPAlgo_Operation theBOP)
    inline

    Returns the type of Boolean Operation.

    ◆ SetTools()

    void BRepAlgoAPI_BooleanOperation::SetTools ( const NCollection_List< TopoDS_Shape > & theLS)
    inline

    Sets the Tool arguments.

    ◆ Shape1()

    const TopoDS_Shape & BRepAlgoAPI_BooleanOperation::Shape1 ( ) const
    inline

    Returns the second argument involved in this Boolean operation. Obsolete.

    ◆ Shape2()

    const TopoDS_Shape & BRepAlgoAPI_BooleanOperation::Shape2 ( ) const
    inline

    Returns the second argument involved in this Boolean operation. Obsolete.

    ◆ Tools()

    const NCollection_List< TopoDS_Shape > & BRepAlgoAPI_BooleanOperation::Tools ( ) const
    inline

    Returns the Tools arguments.

    Field Documentation

    ◆ myOperation

    BOPAlgo_Operation BRepAlgoAPI_BooleanOperation::myOperation
    protected

    Type of Boolean Operation.

    ◆ myTools

    NCollection_List<TopoDS_Shape> BRepAlgoAPI_BooleanOperation::myTools
    protected

    Tool arguments of operation.


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