Version: 9.12.0
GEOMImpl_PipeDriver.cxx File Reference
#include <GEOMImpl_PipeDriver.hxx>
#include <GEOMImpl_IPipeDiffSect.hxx>
#include <GEOMImpl_IPipeShellSect.hxx>
#include <GEOMImpl_IPipeBiNormal.hxx>
#include <GEOMImpl_IPipe.hxx>
#include <GEOMImpl_IPipePath.hxx>
#include <GEOMImpl_GlueDriver.hxx>
#include <GEOMImpl_Types.hxx>
#include <GEOM_Function.hxx>
#include <GEOMUtils.hxx>
#include <Basics_OCCTVersion.hxx>
#include <ShapeAnalysis_FreeBounds.hxx>
#include <ShapeAnalysis_Edge.hxx>
#include <ShapeFix_Face.hxx>
#include <ShapeFix_Shell.hxx>
#include <BRep_Tool.hxx>
#include <BRep_Builder.hxx>
#include <BRepBuilderAPI_Copy.hxx>
#include <BRepBuilderAPI_MakeFace.hxx>
#include <BRepBuilderAPI_MakeSolid.hxx>
#include <BRepBuilderAPI_MakeWire.hxx>
#include <BRepBuilderAPI_Sewing.hxx>
#include <BRepClass3d_SolidClassifier.hxx>
#include <BRepGProp.hxx>
#include <GeomFill_Trihedron.hxx>
#include <GeomFill_CorrectedFrenet.hxx>
#include <BRepOffsetAPI_MakePipe.hxx>
#include <BRepOffsetAPI_MakePipeShell.hxx>
#include <BRepOffsetAPI_ThruSections.hxx>
#include <TopAbs.hxx>
#include <TopExp.hxx>
#include <TopExp_Explorer.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Wire.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Shape.hxx>
#include <TopoDS_Solid.hxx>
#include <TopoDS_Shell.hxx>
#include <TopoDS_Face.hxx>
#include <TopoDS_Compound.hxx>
#include <TopTools_DataMapOfShapeSequenceOfShape.hxx>
#include <TopTools_SequenceOfShape.hxx>
#include <TopTools_HSequenceOfShape.hxx>
#include <TopTools_IndexedDataMapOfShapeShape.hxx>
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
#include <TopTools_ListIteratorOfListOfShape.hxx>
#include <TopTools_MapIteratorOfMapOfShape.hxx>
#include <GProp_GProps.hxx>
#include <GeomAPI_ProjectPointOnCurve.hxx>
#include <GeomAPI_Interpolate.hxx>
#include <Geom_TrimmedCurve.hxx>
#include <Geom_Plane.hxx>
#include <Geom_RectangularTrimmedSurface.hxx>
#include <Geom_BezierSurface.hxx>
#include <Geom_Line.hxx>
#include <Geom_Conic.hxx>
#include <Geom_BSplineCurve.hxx>
#include <Geom_BSplineSurface.hxx>
#include <GeomAdaptor_HCurve.hxx>
#include <GeomFill_BSplineCurves.hxx>
#include <GeomConvert_ApproxCurve.hxx>
#include <GeomConvert.hxx>
#include <TColgp_SequenceOfPnt.hxx>
#include <TColgp_HArray1OfPnt.hxx>
#include <TColgp_Array2OfPnt.hxx>
#include <TColStd_HSequenceOfTransient.hxx>
#include <Precision.hxx>
#include <Standard_NullObject.hxx>
#include <Standard_TypeMismatch.hxx>
#include <Standard_ConstructionError.hxx>
#include "utilities.h"

Macros

#define GROUP_DOWN   0
 
#define GROUP_UP   1
 
#define GROUP_SIDE1   2
 
#define GROUP_SIDE2   3
 
#define GROUP_OTHER   4
 

Functions

static bool FillGroups (const TopTools_SequenceOfShape *theGroups, const TopTools_IndexedMapOfShape &theIndices, Handle(TColStd_HArray1OfInteger) *theGroupIds)
 
static void StoreGroups (GEOMImpl_IPipe *theCI, Handle(TColStd_HArray1OfInteger) *theGroups)
 
static bool DoGroups1 (const TopoDS_Shape &theProfile, BRepOffsetAPI_MakePipeShell &theSweep, TopTools_SequenceOfShape *theGroups)
 
static bool CreateGroups1 (const TopoDS_Shape &theProfile, BRepOffsetAPI_MakePipeShell &theSweep, GEOMImpl_IPipe *theCI)
 
static GeomFill_Trihedron EvaluateBestSweepMode (const TopoDS_Shape &Spine)
 
static Standard_Boolean BuildPipeShell (BRepOffsetAPI_MakePipeShell &theBuilder)
 
static bool FillForOtherEdges (const TopoDS_Shape &F1, const TopoDS_Shape &E1, const TopoDS_Shape &V1, TopTools_IndexedDataMapOfShapeShape &FF)
 
static bool FillCorrespondingEdges (const TopoDS_Shape &FS1, const TopoDS_Shape &FS2, const TopoDS_Vertex &aLoc1, const TopoDS_Vertex &aLoc2, const TopoDS_Wire &aWirePath, TopTools_IndexedDataMapOfShapeShape &FF)
 
static bool FillCorrespondingEdges (const TopoDS_Shape &FS1, const TopoDS_Shape &FS2, const TopoDS_Vertex &aLoc1, const TopoDS_Vertex &aLoc2, TopTools_IndexedDataMapOfShapeShape &FF)
 
static void FindNextPairOfFaces (const TopoDS_Shape &aCurFace, TopTools_IndexedDataMapOfShapeListOfShape &aMapEdgeFaces1, TopTools_IndexedDataMapOfShapeListOfShape &aMapEdgeFaces2, TopTools_IndexedDataMapOfShapeShape &FF, GEOMImpl_IPipe *aCI)
 
static void FindFirstPairFaces (const TopoDS_Shape &S1, const TopoDS_Shape &S2, TopoDS_Vertex &V1, TopoDS_Vertex &V2, TopoDS_Shape &FS1, TopoDS_Shape &FS2)
 
static TopoDS_Shape RemoveFaces (const TopoDS_Shape &theShapeFrom, const TopoDS_Shape &theFacesToRm)
 
Standard_Boolean makeSolid (BRepOffsetAPI_MakePipeShell aBuilder, const TopoDS_Shape &aSh1, const TopoDS_Shape &aSh2, TopoDS_Shape &aShape)
 
static TopoDS_Shape CreatePipeForShellSections (const TopoDS_Wire &aWirePath, GEOMImpl_IPipe *aCI)
 
static TopoDS_Shape CreatePipeShellsWithoutPath (GEOMImpl_IPipe *aCI)
 
static TopoDS_Shape CreatePipeBiNormalAlongVector (const TopoDS_Wire &aWirePath, GEOMImpl_IPipe *aCI)
 
static bool CreateDownUpGroups (BRepPrimAPI_MakeSweep *theSweep, TopTools_SequenceOfShape *theGroups, Standard_Boolean &IsDoSides)
 
static bool DoGroups2 (const TopoDS_Shape &theProfile, const TopoDS_Shape &thePath, BRepOffsetAPI_MakePipe &theSweep, TopTools_SequenceOfShape *theGroups)
 
static bool CreateGroups2 (const TopoDS_Shape &theProfile, const TopoDS_Shape &thePath, BRepOffsetAPI_MakePipe &theSweep, GEOMImpl_IPipe *theCI)
 

Variables

static const Standard_Real TolPipeSurf = 5.e-4
 

Macro Definition Documentation

◆ GROUP_DOWN

#define GROUP_DOWN   0

◆ GROUP_OTHER

#define GROUP_OTHER   4

◆ GROUP_SIDE1

#define GROUP_SIDE1   2

◆ GROUP_SIDE2

#define GROUP_SIDE2   3

◆ GROUP_UP

#define GROUP_UP   1

Function Documentation

◆ BuildPipeShell()

static Standard_Boolean BuildPipeShell ( BRepOffsetAPI_MakePipeShell &  theBuilder)
static

References TolPipeSurf.

◆ CreateDownUpGroups()

static bool CreateDownUpGroups ( BRepPrimAPI_MakeSweep *  theSweep,
TopTools_SequenceOfShape *  theGroups,
Standard_Boolean &  IsDoSides 
)
static

◆ CreateGroups1()

bool CreateGroups1 ( const TopoDS_Shape &  theProfile,
BRepOffsetAPI_MakePipeShell &  theSweep,
GEOMImpl_IPipe theCI 
)
static

◆ CreateGroups2()

static bool CreateGroups2 ( const TopoDS_Shape &  theProfile,
const TopoDS_Shape &  thePath,
BRepOffsetAPI_MakePipe &  theSweep,
GEOMImpl_IPipe theCI 
)
static

◆ CreatePipeBiNormalAlongVector()

static TopoDS_Shape CreatePipeBiNormalAlongVector ( const TopoDS_Wire &  aWirePath,
GEOMImpl_IPipe aCI 
)
static

◆ CreatePipeForShellSections()

◆ CreatePipeShellsWithoutPath()

◆ DoGroups1()

bool DoGroups1 ( const TopoDS_Shape &  theProfile,
BRepOffsetAPI_MakePipeShell &  theSweep,
TopTools_SequenceOfShape *  theGroups 
)
static

◆ DoGroups2()

static bool DoGroups2 ( const TopoDS_Shape &  theProfile,
const TopoDS_Shape &  thePath,
BRepOffsetAPI_MakePipe &  theSweep,
TopTools_SequenceOfShape *  theGroups 
)
static

◆ EvaluateBestSweepMode()

static GeomFill_Trihedron EvaluateBestSweepMode ( const TopoDS_Shape &  Spine)
static

References Handle().

◆ FillCorrespondingEdges() [1/2]

static bool FillCorrespondingEdges ( const TopoDS_Shape &  FS1,
const TopoDS_Shape &  FS2,
const TopoDS_Vertex &  aLoc1,
const TopoDS_Vertex &  aLoc2,
const TopoDS_Wire &  aWirePath,
TopTools_IndexedDataMapOfShapeShape &  FF 
)
static

◆ FillCorrespondingEdges() [2/2]

static bool FillCorrespondingEdges ( const TopoDS_Shape &  FS1,
const TopoDS_Shape &  FS2,
const TopoDS_Vertex &  aLoc1,
const TopoDS_Vertex &  aLoc2,
TopTools_IndexedDataMapOfShapeShape &  FF 
)
static

References FillForOtherEdges().

◆ FillForOtherEdges()

static bool FillForOtherEdges ( const TopoDS_Shape &  F1,
const TopoDS_Shape &  E1,
const TopoDS_Shape &  V1,
TopTools_IndexedDataMapOfShapeShape &  FF 
)
static

◆ FillGroups()

bool FillGroups ( const TopTools_SequenceOfShape *  theGroups,
const TopTools_IndexedMapOfShape &  theIndices,
Handle(TColStd_HArray1OfInteger) *  theGroupIds 
)
static

References theIndices.

◆ FindFirstPairFaces()

static void FindFirstPairFaces ( const TopoDS_Shape &  S1,
const TopoDS_Shape &  S2,
TopoDS_Vertex &  V1,
TopoDS_Vertex &  V2,
TopoDS_Shape &  FS1,
TopoDS_Shape &  FS2 
)
static

◆ FindNextPairOfFaces()

static void FindNextPairOfFaces ( const TopoDS_Shape &  aCurFace,
TopTools_IndexedDataMapOfShapeListOfShape &  aMapEdgeFaces1,
TopTools_IndexedDataMapOfShapeListOfShape &  aMapEdgeFaces2,
TopTools_IndexedDataMapOfShapeShape &  FF,
GEOMImpl_IPipe aCI 
)
static

References FillForOtherEdges().

◆ makeSolid()

Standard_Boolean makeSolid ( BRepOffsetAPI_MakePipeShell  aBuilder,
const TopoDS_Shape &  aSh1,
const TopoDS_Shape &  aSh2,
TopoDS_Shape &  aShape 
)

References Handle().

◆ RemoveFaces()

static TopoDS_Shape RemoveFaces ( const TopoDS_Shape &  theShapeFrom,
const TopoDS_Shape &  theFacesToRm 
)
static

References aResult.

◆ StoreGroups()

Variable Documentation

◆ TolPipeSurf

const Standard_Real TolPipeSurf = 5.e-4
static