|
| | BOPAlgo_MakerVolume () |
| | Empty constructor.
|
| |
| | ~BOPAlgo_MakerVolume () override |
| |
| | BOPAlgo_MakerVolume (const occ::handle< NCollection_BaseAllocator > &theAllocator) |
| | Empty constructor.
|
| |
| void | Clear () override |
| | Clears the data.
|
| |
| void | SetIntersect (const bool bIntersect) |
| | Sets the flag myIntersect: if <bIntersect> is TRUE the shapes from <myArguments> will be intersected. if <bIntersect> is FALSE no intersection will be done.
|
| |
| bool | IsIntersect () const |
| | Returns the flag <myIntersect>.
|
| |
| const TopoDS_Solid & | Box () const |
| | Returns the solid box <mySBox>.
|
| |
| const NCollection_List< TopoDS_Shape > & | Faces () const |
| | Returns the processed faces <myFaces>.
|
| |
| void | SetAvoidInternalShapes (const bool theAvoidInternal) |
| | Defines the preventing of addition of internal for solid parts into the result. By default the internal parts are added into result.
|
| |
| bool | IsAvoidInternalShapes () const |
| | Returns the AvoidInternalShapes flag.
|
| |
| void | Perform (const Message_ProgressRange &theRange=Message_ProgressRange()) override |
| | Performs the operation.
|
| |
| | 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_Context > | Context () 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.
|
| |
| 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.
|
| |
| const TopoDS_Shape & | Shape () 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_History > | History () |
| | History Tool.
|
| |
| void | SetToFillHistory (const bool theHistFlag) |
| | Returns flag of history availability.
|
| |
| bool | HasHistory () const |
| | Returns flag of history availability.
|
| |
| | 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.
|
| |
|
| void | CheckData () override |
| | Checks the data.
|
| |
| void | PerformInternal1 (const BOPAlgo_PaveFiller &thePF, const Message_ProgressRange &theRange=Message_ProgressRange()) override |
| | Performs the operation.
|
| |
| void | CollectFaces () |
| | Collects all faces.
|
| |
| void | MakeBox (NCollection_Map< TopoDS_Shape, TopTools_ShapeMapHasher > &theBoxFaces) |
| | Makes solid box.
|
| |
| void | BuildSolids (NCollection_List< TopoDS_Shape > &theLSR, const Message_ProgressRange &theRange) |
| | Builds solids.
|
| |
| void | RemoveBox (NCollection_List< TopoDS_Shape > &theLSR, const NCollection_Map< TopoDS_Shape, TopTools_ShapeMapHasher > &theBoxFaces) |
| | Removes the covering box.
|
| |
| void | FillInternalShapes (const NCollection_List< TopoDS_Shape > &theLSR) |
| | Fills the solids with internal shapes.
|
| |
| void | BuildShape (const NCollection_List< TopoDS_Shape > &theLSR) |
| | Builds the result.
|
| |
| void | fillPISteps (BOPAlgo_PISteps &theSteps) const override |
| | Analyze progress steps.
|
| |
| 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 > * | LocModified (const TopoDS_Shape &theS) |
| | 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 | 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.
|
| |
| | BOPAlgo_BuilderShape () |
| | Constructor with allocator.
|
| |
| | BOPAlgo_BuilderShape (const occ::handle< NCollection_BaseAllocator > &theAllocator) |
| | Constructor with allocator.
|
| |
| | 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.
|
| |
|
| bool | myIntersect |
| |
| Bnd_Box | myBBox |
| |
| TopoDS_Solid | mySBox |
| |
| NCollection_List< TopoDS_Shape > | myFaces |
| |
| bool | myAvoidInternalShapes |
| |
| NCollection_List< TopoDS_Shape > | myArguments |
| | Arguments of the operation.
|
| |
| NCollection_Map< TopoDS_Shape, TopTools_ShapeMapHasher > | myMapFence |
| | 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_Context > | myContext |
| | 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_ShapeMapHasher > | myImages |
| | Images - map of Images of the sub-shapes of arguments.
|
| |
| NCollection_DataMap< TopoDS_Shape, TopoDS_Shape, TopTools_ShapeMapHasher > | myShapesSD |
| | ShapesSD - map of SD Shapes.
|
| |
| NCollection_DataMap< TopoDS_Shape, NCollection_List< TopoDS_Shape >, TopTools_ShapeMapHasher > | myOrigins |
| | Origins - map of Origins, back map of Images.
|
| |
| NCollection_DataMap< TopoDS_Shape, NCollection_List< TopoDS_Shape >, TopTools_ShapeMapHasher > | myInParts |
| | 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.
|
| |
| TopoDS_Shape | myShape |
| | Result of the operation.
|
| |
| NCollection_List< TopoDS_Shape > | myHistShapes |
| | Storer for the history shapes.
|
| |
| NCollection_Map< TopoDS_Shape, TopTools_ShapeMapHasher > | myMapShape |
| | cached map of all arguments shapes
|
| |
| bool | myFillHistory |
| | Controls the history filling.
|
| |
| occ::handle< BRepTools_History > | myHistory |
| | History tool.
|
| |
| occ::handle< NCollection_BaseAllocator > | myAllocator |
| | Enables/Disables the usage of OBB.
|
| |
| occ::handle< Message_Report > | myReport |
| | 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.
|
| |
The algorithm is to build solids from set of shapes. It uses the BOPAlgo_Builder algorithm to intersect the given shapes and build the images of faces (if needed) and BOPAlgo_BuilderSolid algorithm to build the solids.
Steps of the algorithm:
- Collect all faces: intersect the shapes if necessary and collect the images of faces, otherwise just collect the faces to the <myFaces> list; All faces on this step added twice, with orientation FORWARD and REVERSED;
- Create bounding box covering all the faces from <myFaces> and create solid box from corner points of that bounding box (myBBox, mySBox). Add faces from that box to <myFaces>;
- Build solids from <myFaces> using BOPAlgo_BuilderSolid algorithm;
- Treat the result: Eliminate solid containing faces from <mySBox>;
- Fill internal shapes: add internal vertices and edges into created solids;
- Prepare the history.
Fields: <myIntersect> - boolean flag. It defines whether intersect shapes from <myArguments> (if set to TRUE) or not (FALSE). The default value is TRUE. By setting it to FALSE the user should guarantee that shapes in <myArguments> do not interfere with each other, otherwise the result is unpredictable.
<myBBox> - bounding box, covering all faces from <myFaces>.
<mySBox> - Solid box created from the corner points of <myBBox>.
<myFaces> - the list is to keep the "final" faces, that will be given to the BOPAlgo_BuilderSolid algorithm. If the shapes have been interfered it should contain the images of the source shapes, otherwise its just the original faces. It also contains the faces from <mySBox>.
Fields inherited from BOPAlgo_Builder:
<myArguments> - list of the source shapes. The source shapes can have any type, but each shape must not be self-interfered.
<myShape> - Result shape:
- empty compound - if no solids were created;
- solid - if created only one solid;
- compound of solids - if created more than one solid.
Fields inherited from BOPAlgo_Algo:
<myRunParallel> - Defines whether the parallel processing is switched on or not. <myReport> - Error status of the operation. Additionally to the errors of the parent algorithm it can have the following values:
Example:
BOPAlgo_MakerVolume aMV; // aMV.SetArguments(aLS); //source shapes aMV.SetRunParallel(bRunParallel); //parallel or single mode aMV.SetIntersect(bIntersect); //intersect or not the shapes from <aLS> // aMV.Perform(); //perform the operation if (aMV.HasErrors()) { //check error status return; } // const TopoDS_Shape& aResult = aMV.Shape(); //result of the operation