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
    BOPAlgo_CellsBuilder Class Reference

    The algorithm is based on the General Fuse algorithm (GFA). The result of GFA is all split parts of the Arguments. More...

    #include <BOPAlgo_CellsBuilder.hxx>

    Inheritance diagram for BOPAlgo_CellsBuilder:

    Public Member Functions

     BOPAlgo_CellsBuilder ()
     BOPAlgo_CellsBuilder (const occ::handle< NCollection_BaseAllocator > &theAllocator)
     ~BOPAlgo_CellsBuilder () override
    void Clear () override
     Redefined method Clear - clears the contents.
    void AddToResult (const NCollection_List< TopoDS_Shape > &theLSToTake, const NCollection_List< TopoDS_Shape > &theLSToAvoid, const int theMaterial=0, const bool theUpdate=false)
     Adding the parts to result. The parts are defined by two lists of shapes: <theLSToTake> defines the arguments which parts should be taken into result; <theLSToAvoid> defines the arguments which parts should not be taken into result; To be taken into result the part must be IN for all shapes from the list <theLSToTake> and must be OUT of all shapes from the list <theLSToAvoid>.
    void AddAllToResult (const int theMaterial=0, const bool theUpdate=false)
     Add all split parts to result. <theMaterial> defines the removal of internal boundaries; <theUpdate> parameter defines whether to remove boundaries now or not.
    void RemoveFromResult (const NCollection_List< TopoDS_Shape > &theLSToTake, const NCollection_List< TopoDS_Shape > &theLSToAvoid)
     Removing the parts from result. The parts are defined by two lists of shapes: <theLSToTake> defines the arguments which parts should be removed from result; <theLSToAvoid> defines the arguments which parts should not be removed from result. To be removed from the result the part must be IN for all shapes from the list <theLSToTake> and must be OUT of all shapes from the list <theLSToAvoid>.
    void RemoveAllFromResult ()
     Remove all parts from result.
    void RemoveInternalBoundaries ()
     Removes internal boundaries between cells with the same material. If the result contains the cells with same material but of different dimension the removal of internal boundaries between these cells will not be performed. In case of some errors during the removal the method will set the appropriate warning status - use GetReport() to access them.
    const TopoDS_ShapeGetAllParts () const
     Get all split parts.
    void MakeContainers ()
     Makes the Containers of proper type from the parts added to result.
    Public Member Functions inherited from BOPAlgo_Builder
     BOPAlgo_Builder ()
     Empty constructor.
     ~BOPAlgo_Builder () override
     BOPAlgo_Builder (const occ::handle< NCollection_BaseAllocator > &theAllocator)
    BOPAlgo_PPaveFiller PPaveFiller ()
     Returns the PaveFiller, algorithm for sub-shapes intersection.
    BOPDS_PDS PDS ()
     Returns the Data Structure, holder of intersection information.
    occ::handle< IntTools_ContextContext () const
     Returns the Context, tool for cashing heavy algorithms.
    virtual void AddArgument (const TopoDS_Shape &theShape)
     Sets the list of arguments for the operation.
    virtual void SetArguments (const NCollection_List< TopoDS_Shape > &theLS)
     Sets the list of arguments for the operation.
    const NCollection_List< TopoDS_Shape > & Arguments () const
     Returns the list of 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.
    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 Perform (const Message_ProgressRange &theRange=Message_ProgressRange()) override
     Performs the operation with the prepared filler. The intersection will not be performed in this case.
    virtual void PerformWithFiller (const BOPAlgo_PaveFiller &theFiller, const Message_ProgressRange &theRange=Message_ProgressRange())
     Performs the operation with the prepared filler. The intersection will not be performed in this case.
    virtual void BuildBOP (const NCollection_List< TopoDS_Shape > &theObjects, const TopAbs_State theObjState, const NCollection_List< TopoDS_Shape > &theTools, const TopAbs_State theToolsState, const Message_ProgressRange &theRange, occ::handle< Message_Report > theReport=nullptr)
     Builds the result of Boolean operation of given type basing on the result of Builder operation (GF or any other).
    void BuildBOP (const NCollection_List< TopoDS_Shape > &theObjects, const NCollection_List< TopoDS_Shape > &theTools, const BOPAlgo_Operation theOperation, const Message_ProgressRange &theRange, occ::handle< Message_Report > theReport=nullptr)
     Builds the result of Boolean operation of given type basing on the result of Builder operation (GF or any other).
    const NCollection_DataMap< TopoDS_Shape, NCollection_List< TopoDS_Shape >, TopTools_ShapeMapHasher > & Images () const
     Returns the map of origins.
    const NCollection_DataMap< TopoDS_Shape, NCollection_List< TopoDS_Shape >, TopTools_ShapeMapHasher > & Origins () const
     Returns the map of origins.
    const NCollection_DataMap< TopoDS_Shape, TopoDS_Shape, TopTools_ShapeMapHasher > & ShapesSD () const
     Returns the map of Same Domain (SD) shapes - coinciding shapes from different arguments.
    Public Member Functions inherited from BOPAlgo_BuilderShape
    const TopoDS_ShapeShape () const
    const NCollection_List< TopoDS_Shape > & Modified (const TopoDS_Shape &theS)
     Returns the list of shapes Generated from the shape theS.
    const NCollection_List< TopoDS_Shape > & Generated (const TopoDS_Shape &theS)
     Returns the list of shapes Generated from the shape theS.
    bool IsDeleted (const TopoDS_Shape &theS)
     Returns true if the shape theS has been deleted. In this case the shape will have no Modified elements, but can have Generated elements.
    bool HasModified () const
     Returns true if any of the input shapes has been modified during operation.
    bool HasGenerated () const
     Returns true if any of the input shapes has generated shapes during operation.
    bool HasDeleted () const
     Returns true if any of the input shapes has been deleted during operation.
    occ::handle< BRepTools_HistoryHistory ()
     History Tool.
    void SetToFillHistory (const bool theHistFlag)
     Returns flag of history availability.
    bool HasHistory () const
     Returns flag of history availability.
    Public Member Functions inherited from BOPAlgo_Options
     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.

    Protected Member Functions

    const NCollection_List< TopoDS_Shape > * LocModified (const TopoDS_Shape &theS) override
     Prepare information for history support taking into account local modification map of unified elements - myMapModified.
    void PerformInternal1 (const BOPAlgo_PaveFiller &thePF, const Message_ProgressRange &theRange) override
     Redefined method PerformInternal1 - makes all split parts, nullifies the result <myShape>, and index all parts.
    void IndexParts ()
     Indexes the parts for quick access to the arguments.
    void FindParts (const NCollection_List< TopoDS_Shape > &theLSToTake, const NCollection_List< TopoDS_Shape > &theLSToAvoid, NCollection_List< TopoDS_Shape > &theParts)
     Looking for the parts defined by two lists.
    bool RemoveInternals (const NCollection_List< TopoDS_Shape > &theLS, NCollection_List< TopoDS_Shape > &theLSNew, const NCollection_Map< TopoDS_Shape, TopTools_ShapeMapHasher > &theMapKeepBnd=NCollection_Map< TopoDS_Shape, TopTools_ShapeMapHasher >())
     Removes internal boundaries between cells with the same material. Returns TRUE if any internal boundaries have been removed.
    Protected Member Functions inherited from BOPAlgo_Builder
    void PrepareHistory (const Message_ProgressRange &theRange)
     Prepare history information for the input shapes taking into account possible operation-specific modifications. For instance, in the CellsBuilder operation, additionally to splitting input shapes the splits of the shapes (or the shapes themselves) may be unified during removal of internal boundaries. In this case each split should be linked to the unified shape.
    virtual const NCollection_List< TopoDS_Shape > & LocGenerated (const TopoDS_Shape &theS)
     Returns the list of shapes generated from the shape theS. Similarly to LocModified must be redefined for specific operations, obtaining Generated elements differently.
    virtual void PerformInternal (const BOPAlgo_PaveFiller &thePF, const Message_ProgressRange &theRange)
     Performs the building of the result. To build the result of any other operation it will be necessary to override this method.
    virtual void BuildResult (const TopAbs_ShapeEnum theType)
     Builds the result of operation. The method is called for each of the arguments type and adds into the result the splits of the arguments of that type.
    void CheckData () override
     Checks if the intersection algorithm has Errors/Warnings.
    void CheckFiller ()
     Checks if the intersection algorithm has Errors/Warnings.
    virtual void Prepare ()
     Prepares the result shape by making it empty compound.
    void FillImagesVertices (const Message_ProgressRange &theRange)
    void FillImagesEdges (const Message_ProgressRange &theRange)
    void FillImagesContainers (const TopAbs_ShapeEnum theType, const Message_ProgressRange &theRange)
     Builds the image of the given container using the splits of its sub-shapes.
    void FillImagesContainer (const TopoDS_Shape &theS, const TopAbs_ShapeEnum theType)
     Builds the image of the given container using the splits of its sub-shapes.
    void FillImagesFaces (const Message_ProgressRange &theRange)
     Builds the splits of faces using the information from the intersection stage stored in Data Structure.
    virtual void BuildSplitFaces (const Message_ProgressRange &theRange)
     Builds the splits of faces using the information from the intersection stage stored in Data Structure.
    void FillSameDomainFaces (const Message_ProgressRange &theRange)
     Looks for the same domain faces among the splits of the faces. Updates the map of images with SD faces.
    void FillInternalVertices (const Message_ProgressRange &theRange)
     Classifies the alone vertices on faces relatively its splits and adds them as INTERNAL into the splits.
    void FillImagesSolids (const Message_ProgressRange &theRange)
     Builds the draft solid by rebuilding the shells of the solid with the splits of faces.
    void BuildDraftSolid (const TopoDS_Shape &theSolid, TopoDS_Shape &theDraftSolid, NCollection_List< TopoDS_Shape > &theLIF)
     Builds the draft solid by rebuilding the shells of the solid with the splits of faces.
    virtual void FillIn3DParts (NCollection_DataMap< TopoDS_Shape, TopoDS_Shape, TopTools_ShapeMapHasher > &theDraftSolids, const Message_ProgressRange &theRange)
     Finds faces located inside each solid.
    void BuildSplitSolids (NCollection_DataMap< TopoDS_Shape, TopoDS_Shape, TopTools_ShapeMapHasher > &theDraftSolids, const Message_ProgressRange &theRange)
     Builds the splits of the solids using their draft versions and faces located inside.
    void FillInternalShapes (const Message_ProgressRange &theRange)
     Classifies the vertices and edges from the arguments relatively splits of solids and makes them INTERNAL for solids.
    void FillImagesCompounds (const Message_ProgressRange &theRange)
     Builds the image of the given compound.
    void FillImagesCompound (const TopoDS_Shape &theS, NCollection_Map< TopoDS_Shape, TopTools_ShapeMapHasher > &theMF)
     Builds the image of the given compound.
    virtual void PostTreat (const Message_ProgressRange &theRange)
    NbShapes getNbShapes () const
     Compute number of shapes of certain type participating in operation.
    void fillPIConstants (const double theWhole, BOPAlgo_PISteps &theSteps) const override
     Filling steps for constant operations.
    void fillPISteps (BOPAlgo_PISteps &theSteps) const override
     Filling steps for all other operations.
    Protected Member Functions inherited from BOPAlgo_BuilderShape
     BOPAlgo_BuilderShape ()
     Constructor with allocator.
     BOPAlgo_BuilderShape (const occ::handle< NCollection_BaseAllocator > &theAllocator)
     Constructor with allocator.
    Protected Member Functions inherited from BOPAlgo_Algo
     BOPAlgo_Algo ()
     Default constructor.
     ~BOPAlgo_Algo () override
     BOPAlgo_Algo (const occ::handle< NCollection_BaseAllocator > &theAllocator)
    virtual void CheckResult ()
     Checks the obtained result.
    void analyzeProgress (const double theWhole, BOPAlgo_PISteps &theSteps) const
     Fills the values for constant operations - the operations having constant relative running time.
    bool UserBreak (const Message_ProgressScope &thePS)
     Adds error to the report if the break signal was caught. Returns true in this case, false otherwise.

    Protected Attributes

    TopoDS_Shape myAllParts
     All split parts of the arguments.
    NCollection_IndexedDataMap< TopoDS_Shape, NCollection_List< TopoDS_Shape >, TopTools_ShapeMapHashermyIndex
     Connection map from all splits parts to the argument shapes from which they were created.
    NCollection_DataMap< int, NCollection_List< TopoDS_Shape > > myMaterials
     Map of assigned materials (material -> list of shape).
    NCollection_DataMap< TopoDS_Shape, int, TopTools_ShapeMapHashermyShapeMaterial
     Map of assigned materials (shape -> material).
    NCollection_DataMap< TopoDS_Shape, TopoDS_Shape, TopTools_ShapeMapHashermyMapModified
     Local modification map to track unification of the splits.
    Protected Attributes inherited from BOPAlgo_Builder
    NCollection_List< TopoDS_ShapemyArguments
     Arguments of the operation.
    NCollection_Map< TopoDS_Shape, TopTools_ShapeMapHashermyMapFence
     Fence map providing the uniqueness of the shapes in the list of arguments.
    BOPAlgo_PPaveFiller myPaveFiller
     Pave Filler - algorithm for sub-shapes intersection.
    BOPDS_PDS myDS
     Data Structure - holder of intersection information.
    occ::handle< IntTools_ContextmyContext
     Context - tool for cashing heavy algorithms such as Projectors and Classifiers.
    int myEntryPoint
     EntryPoint - controls the deletion of the PaveFiller, which could live longer than the Builder.
    NCollection_DataMap< TopoDS_Shape, NCollection_List< TopoDS_Shape >, TopTools_ShapeMapHashermyImages
     Images - map of Images of the sub-shapes of arguments.
    NCollection_DataMap< TopoDS_Shape, TopoDS_Shape, TopTools_ShapeMapHashermyShapesSD
     ShapesSD - map of SD Shapes.
    NCollection_DataMap< TopoDS_Shape, NCollection_List< TopoDS_Shape >, TopTools_ShapeMapHashermyOrigins
     Origins - map of Origins, back map of Images.
    NCollection_DataMap< TopoDS_Shape, NCollection_List< TopoDS_Shape >, TopTools_ShapeMapHashermyInParts
     InParts - map of own and acquired IN faces of the arguments solids.
    bool myNonDestructive
     Safe processing option allows avoiding modification of the input shapes.
    BOPAlgo_GlueEnum myGlue
     Gluing option allows speeding up the intersection of the input shapes.
    bool myCheckInverted
     Check inverted option allows disabling the check of input solids on inverted status.
    Protected Attributes inherited from BOPAlgo_BuilderShape
    TopoDS_Shape myShape
     Result of the operation.
    NCollection_List< TopoDS_ShapemyHistShapes
     Storer for the history shapes.
    NCollection_Map< TopoDS_Shape, TopTools_ShapeMapHashermyMapShape
     cached map of all arguments shapes
    bool myFillHistory
     Controls the history filling.
    occ::handle< BRepTools_HistorymyHistory
     History tool.
    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.

    Additional Inherited Members

    static bool GetParallelMode ()
     Gets the global parallel mode.
    static void SetParallelMode (const bool theNewMode)
     Sets the global parallel mode.
    Protected Types inherited from BOPAlgo_Builder
    enum  BOPAlgo_PIOperation {
      PIOperation_TreatVertices = 0 , PIOperation_TreatEdges , PIOperation_TreatWires , PIOperation_TreatFaces ,
      PIOperation_TreatShells , PIOperation_TreatSolids , PIOperation_TreatCompsolids , PIOperation_TreatCompounds ,
      PIOperation_FillHistory , PIOperation_PostTreat , PIOperation_Last
    }
     Compute number of shapes of certain type participating in operation. More...

    Detailed Description

    The algorithm is based on the General Fuse algorithm (GFA). The result of GFA is all split parts of the Arguments.

    The purpose of this algorithm is to provide the result with the content of:

    1. Cells (parts) defined by the user;
    2. Internal boundaries defined by the user.

    In other words the algorithm should provide the possibility for the user to add or remove any part to (from) result and remove any internal boundaries between parts.

    All the requirements of GFA for the DATA are inherited in this algorithm. The arguments could be of any type (dimension) and should be valid in terms of BRepCheck_Analyzer and BOPAlgo_ArgumentAnalyzer.

    Results:

    The result of the algorithm is compound containing selected parts of the basic types (VERTEX, EDGE, FACE or SOLID). The default result is empty compound. It is possible to add any split part to the result by using the methods AddToRessult() and AddAllToResult(). It is also possible to remove any part from the result by using methods RemoveFromResult() and RemoveAllFromResult(). The method RemoveAllFromResult() is also suitable for clearing the result.

    To remove Internal boundaries it is necessary to set the same material to the parts between which the boundaries should be removed and call the method RemoveInternalBoundaries(). The material should not be equal to 0, as this is default material value. The boundaries between parts with this value will not be removed. One part cannot be added with the different materials. It is also possible to remove the boundaries during combining the result. To do this it is necessary to set the material for parts (not equal to 0) and set the flag bUpdate to TRUE. For the arguments of the types FACE or EDGE it is recommended to remove the boundaries in the end when the result is completely built. It will help to avoid self-intersections in the result.

    Note, that if the result contains the parts with same material but of different dimension the boundaries between such parts will not be removed. Currently, the removal of the internal boundaries between multi-dimensional shapes is not supported.

    It is possible to create typed Containers from the parts added to result by using method MakeContainers(). The type of the containers will depend on the type of the arguments: WIRES for EEDGE, SHELLS for FACES and COMPSOLIDS for SOLIDS. The result will be compound containing containers. Adding of the parts to such result will not update containers. The result compound will contain the containers and new added parts (of basic type). Removing of the parts from such result may affect some containers if the parts that should be removed is in container. In this case this container will be rebuilt without that part.

    History:

    The algorithm supports history information for basic types of the shapes - VERTEX, EDGE, FACE. This information available through the methods IsDeleted() and Modified().

    In DRAW Test Harness it is available through the same commands as for Boolean Operations (bmodified, bgenerated and bisdeleted).

    The algorithm can return the following Error Statuses:

    • Error status acquired in the General Fuse algorithm. The Error status can be checked with HasErrors() method. If the Error status is not equal to zero, the result cannot be trustworthy.

    The algorithm can set the following Warning Statuses:

    • Warning status acquired in the General Fuse algorithm;
    • BOPAlgo_AlertRemovalOfIBForMDimShapes
    • BOPAlgo_AlertRemovalOfIBForFacesFailed
    • BOPAlgo_AlertRemovalOfIBForEdgesFailed
    • BOPAlgo_AlertRemovalOfIBForSolidsFailed

    The Warning status can be checked with HasWarnings() method or printed with the DumpWarnings() method. If warnings are recorded, the result may be not as expected.

    Examples:

    1. API
      NCollection_List<TopoDS_Shape> aLS = ...; // arguments
      // parallel or single mode (the default value is FALSE)
      bool toRunParallel = false;
      // fuzzy option (default value is 0)
      double aTol = 0.0;
      //
      aCBuilder.SetArguments (aLS);
      aCBuilder.SetRunParallel (toRunParallel);
      aCBuilder.SetFuzzyValue (aTol);
      //
      aCBuilder.Perform();
      if (aCBuilder.HasErrors()) // check error status
      {
      return;
      }
      // empty compound, as nothing has been added yet
      const TopoDS_Shape& aRes = aCBuilder.Shape();
      // all split parts
      const TopoDS_Shape& aRes = aCBuilder.GetAllParts();
      //
      NCollection_List<TopoDS_Shape> aLSToTake = ...; // parts of these arguments will be taken into
      result NCollection_List<TopoDS_Shape> aLSToAvoid = ...; // parts of these arguments will not be
      taken into result
      //
      // defines the material common for the cells,
      // i.e. the boundaries between cells with the same material will be removed.
      // By default it is set to 0.
      // Thus, to remove some boundary the value of this variable should not be equal to 0.
      int iMaterial = ...;
      // defines whether to update the result right now or not
      bool toUpdate = ...;
      // adding to result
      aCBuilder.AddToResult (aLSToTake, aLSToAvoid, iMaterial, toUpdate);
      aR = aCBuilder.Shape(); // the result
      // removing of the boundaries (should be called only if toUpdate is false)
      //
      // removing from result
      aCBuilder.AddAllToResult();
      aCBuilder.RemoveFromResult (aLSToTake, aLSToAvoid);
      aR = aCBuilder.Shape(); // the result
      GLuint64EXT * result
      Definition OpenGl_glext.h:19110
      virtual void SetArguments(const NCollection_List< TopoDS_Shape > &theLS)
      Sets the list of arguments for the operation.
      void Perform(const Message_ProgressRange &theRange=Message_ProgressRange()) override
      Performs the operation with the prepared filler. The intersection will not be performed in this case.
      const TopoDS_Shape & Shape() const
      Definition BOPAlgo_BuilderShape.hxx:48
      const TopoDS_Shape & GetAllParts() const
      Get all split parts.
      void AddAllToResult(const int theMaterial=0, const bool theUpdate=false)
      Add all split parts to result. <theMaterial> defines the removal of internal boundaries; <theUpdate> ...
      void RemoveInternalBoundaries()
      Removes internal boundaries between cells with the same material. If the result contains the cells wi...
      void RemoveFromResult(const NCollection_List< TopoDS_Shape > &theLSToTake, const NCollection_List< TopoDS_Shape > &theLSToAvoid)
      Removing the parts from result. The parts are defined by two lists of shapes: <theLSToTake> defines t...
      void AddToResult(const NCollection_List< TopoDS_Shape > &theLSToTake, const NCollection_List< TopoDS_Shape > &theLSToAvoid, const int theMaterial=0, const bool theUpdate=false)
      Adding the parts to result. The parts are defined by two lists of shapes: <theLSToTake> defines the a...
      bool HasErrors() const
      Returns true if algorithm has failed.
      Definition BOPAlgo_Options.hxx:73
      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 <t...
      Definition BOPAlgo_Options.hxx:114
      Definition NCollection_List.hxx:33
      Describes a shape which.
      Definition TopoDS_Shape.hxx:41
    2. DRAW Test Harness
      psphere s1 15
      psphere s2 15
      psphere s3 15
      ttranslate s1 0 0 10
      ttranslate s2 20 0 10
      ttranslate s3 10 0 0
      # adding arguments
      bclearobjects; bcleartools
      baddobjects s1 s2 s3
      # intersection
      bfillds
      # rx will contain all split parts
      bcbuild rx
      # add to result the part that is common for all three spheres
      bcadd res s1 1 s2 1 s3 1 -m 1
      # add to result the part that is common only for first and third spheres
      bcadd res s1 1 s2 0 s3 1 -m 1
      # remove internal boundaries
      bcremoveint res
      const GLfloat * m
      Definition OpenGl_glext.h:11044
      GLuint res
      Definition OpenGl_glext.h:15524
      GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat s1
      Definition OpenGl_glext.h:16924

    Constructor & Destructor Documentation

    ◆ BOPAlgo_CellsBuilder() [1/2]

    BOPAlgo_CellsBuilder::BOPAlgo_CellsBuilder ( )

    ◆ BOPAlgo_CellsBuilder() [2/2]

    BOPAlgo_CellsBuilder::BOPAlgo_CellsBuilder ( const occ::handle< NCollection_BaseAllocator > & theAllocator)

    ◆ ~BOPAlgo_CellsBuilder()

    BOPAlgo_CellsBuilder::~BOPAlgo_CellsBuilder ( )
    override

    Member Function Documentation

    ◆ AddAllToResult()

    void BOPAlgo_CellsBuilder::AddAllToResult ( const int theMaterial = 0,
    const bool theUpdate = false )

    Add all split parts to result. <theMaterial> defines the removal of internal boundaries; <theUpdate> parameter defines whether to remove boundaries now or not.

    ◆ AddToResult()

    void BOPAlgo_CellsBuilder::AddToResult ( const NCollection_List< TopoDS_Shape > & theLSToTake,
    const NCollection_List< TopoDS_Shape > & theLSToAvoid,
    const int theMaterial = 0,
    const bool theUpdate = false )

    Adding the parts to result. The parts are defined by two lists of shapes: <theLSToTake> defines the arguments which parts should be taken into result; <theLSToAvoid> defines the arguments which parts should not be taken into result; To be taken into result the part must be IN for all shapes from the list <theLSToTake> and must be OUT of all shapes from the list <theLSToAvoid>.

    To remove internal boundaries between any cells in the result <theMaterial> variable should be used. The boundaries between cells with the same material will be removed. Default value is 0. Thus, to remove any boundary the value of this variable should not be equal to 0. <theUpdate> parameter defines whether to remove boundaries now or not.

    ◆ Clear()

    void BOPAlgo_CellsBuilder::Clear ( )
    overridevirtual

    Redefined method Clear - clears the contents.

    Reimplemented from BOPAlgo_Builder.

    ◆ FindParts()

    void BOPAlgo_CellsBuilder::FindParts ( const NCollection_List< TopoDS_Shape > & theLSToTake,
    const NCollection_List< TopoDS_Shape > & theLSToAvoid,
    NCollection_List< TopoDS_Shape > & theParts )
    protected

    Looking for the parts defined by two lists.

    ◆ GetAllParts()

    const TopoDS_Shape & BOPAlgo_CellsBuilder::GetAllParts ( ) const

    Get all split parts.

    ◆ IndexParts()

    void BOPAlgo_CellsBuilder::IndexParts ( )
    protected

    Indexes the parts for quick access to the arguments.

    ◆ LocModified()

    const NCollection_List< TopoDS_Shape > * BOPAlgo_CellsBuilder::LocModified ( const TopoDS_Shape & theS)
    overrideprotectedvirtual

    Prepare information for history support taking into account local modification map of unified elements - myMapModified.

    Reimplemented from BOPAlgo_Builder.

    ◆ MakeContainers()

    void BOPAlgo_CellsBuilder::MakeContainers ( )

    Makes the Containers of proper type from the parts added to result.

    ◆ PerformInternal1()

    void BOPAlgo_CellsBuilder::PerformInternal1 ( const BOPAlgo_PaveFiller & thePF,
    const Message_ProgressRange & theRange )
    overrideprotectedvirtual

    Redefined method PerformInternal1 - makes all split parts, nullifies the result <myShape>, and index all parts.

    Reimplemented from BOPAlgo_Builder.

    ◆ RemoveAllFromResult()

    void BOPAlgo_CellsBuilder::RemoveAllFromResult ( )

    Remove all parts from result.

    ◆ RemoveFromResult()

    void BOPAlgo_CellsBuilder::RemoveFromResult ( const NCollection_List< TopoDS_Shape > & theLSToTake,
    const NCollection_List< TopoDS_Shape > & theLSToAvoid )

    Removing the parts from result. The parts are defined by two lists of shapes: <theLSToTake> defines the arguments which parts should be removed from result; <theLSToAvoid> defines the arguments which parts should not be removed from result. To be removed from the result the part must be IN for all shapes from the list <theLSToTake> and must be OUT of all shapes from the list <theLSToAvoid>.

    ◆ RemoveInternalBoundaries()

    void BOPAlgo_CellsBuilder::RemoveInternalBoundaries ( )

    Removes internal boundaries between cells with the same material. If the result contains the cells with same material but of different dimension the removal of internal boundaries between these cells will not be performed. In case of some errors during the removal the method will set the appropriate warning status - use GetReport() to access them.

    ◆ RemoveInternals()

    bool BOPAlgo_CellsBuilder::RemoveInternals ( const NCollection_List< TopoDS_Shape > & theLS,
    NCollection_List< TopoDS_Shape > & theLSNew,
    const NCollection_Map< TopoDS_Shape, TopTools_ShapeMapHasher > & theMapKeepBnd = NCollection_MapTopoDS_ShapeTopTools_ShapeMapHasher >() )
    protected

    Removes internal boundaries between cells with the same material. Returns TRUE if any internal boundaries have been removed.

    Field Documentation

    ◆ myAllParts

    TopoDS_Shape BOPAlgo_CellsBuilder::myAllParts
    protected

    All split parts of the arguments.

    ◆ myIndex

    Connection map from all splits parts to the argument shapes from which they were created.

    ◆ myMapModified

    NCollection_DataMap<TopoDS_Shape, TopoDS_Shape, TopTools_ShapeMapHasher> BOPAlgo_CellsBuilder::myMapModified
    protected

    Local modification map to track unification of the splits.

    ◆ myMaterials

    NCollection_DataMap<int, NCollection_List<TopoDS_Shape> > BOPAlgo_CellsBuilder::myMaterials
    protected

    Map of assigned materials (material -> list of shape).

    ◆ myShapeMaterial

    NCollection_DataMap<TopoDS_Shape, int, TopTools_ShapeMapHasher> BOPAlgo_CellsBuilder::myShapeMaterial
    protected

    Map of assigned materials (shape -> material).


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