Version: 8.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
GEOMImpl_IBlocksOperations.cxx File Reference
#include <Standard_Stream.hxx>
#include <GEOMImpl_IBlocksOperations.hxx>
#include <GEOMImpl_Types.hxx>
#include <GEOMImpl_BlockDriver.hxx>
#include <GEOMImpl_IBlocks.hxx>
#include <GEOMImpl_IBlockTrsf.hxx>
#include <GEOMImpl_Block6Explorer.hxx>
#include <GEOMUtils.hxx>
#include <GEOM_Function.hxx>
#include <GEOM_PythonDump.hxx>
#include <GEOMAlgo_GlueAnalyser.hxx>
#include <GEOMAlgo_CoupleOfShapes.hxx>
#include <GEOMAlgo_ListOfCoupleOfShapes.hxx>
#include <GEOMAlgo_ListIteratorOfListOfCoupleOfShapes.hxx>
#include <BlockFix_CheckTool.hxx>
#include <Basics_OCCTVersion.hxx>
#include "utilities.h"
#include <OpUtil.hxx>
#include <Utils_ExceptHandlers.hxx>
#include <TFunction_DriverTable.hxx>
#include <TFunction_Driver.hxx>
#include <TDataStd_Integer.hxx>
#include <TDF_Tool.hxx>
#include <BRep_Tool.hxx>
#include <BRep_Builder.hxx>
#include <BRepTools.hxx>
#include <BRepTools_WireExplorer.hxx>
#include <BRepGProp.hxx>
#include <BRepBndLib.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <BRepClass_FaceClassifier.hxx>
#include <BRepClass3d_SolidClassifier.hxx>
#include <BRepExtrema_DistShapeShape.hxx>
#include <TopAbs.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopoDS_Compound.hxx>
#include <TopoDS_Iterator.hxx>
#include <TopExp.hxx>
#include <TopExp_Explorer.hxx>
#include <TopTools_MapOfShape.hxx>
#include <TopTools_Array1OfShape.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
#include <TopTools_DataMapOfShapeInteger.hxx>
#include <TopTools_ListIteratorOfListOfShape.hxx>
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
#include <TopTools_DataMapIteratorOfDataMapOfShapeInteger.hxx>
#include <Bnd_Box.hxx>
#include <GProp_GProps.hxx>
#include <Geom_Curve.hxx>
#include <Geom_Surface.hxx>
#include <ShapeAnalysis_Surface.hxx>
#include <TColStd_MapOfInteger.hxx>
#include <TColStd_Array1OfReal.hxx>
#include <TColStd_Array1OfInteger.hxx>
#include <TColStd_Array2OfInteger.hxx>
#include <Precision.hxx>
#include <Standard_Failure.hxx>
#include <Standard_ErrorHandler.hxx>

Macros

#define REL_NOT_CONNECTED   0
 
#define REL_OK   1
 
#define REL_NOT_GLUED   2
 
#define REL_COLLISION_VV   3
 
#define REL_COLLISION_FF   4
 
#define REL_COLLISION_EE   5
 
#define REL_UNKNOWN   6
 

Functions

static Standard_Boolean IsQuadrangle (const TopoDS_Face &theFace, const Standard_Real theToleranceC1)
 This function returns Standard_True if the face is quadrangular. More...
 
 Handle (GEOM_Object) GEOMImpl_IBlocksOperations
 
Standard_Integer BlocksRelation (const TopoDS_Shape &theBlock1, const TopoDS_Shape &theBlock2)
 
void FindConnected (const Standard_Integer theBlockIndex, const TColStd_Array2OfInteger &theRelations, TColStd_MapOfInteger &theProcessedMap, TColStd_MapOfInteger &theConnectedMap)
 
Standard_Boolean HasAnyConnection (const Standard_Integer theBlockIndex, const TColStd_MapOfInteger &theWith, const TColStd_Array2OfInteger &theRelations, TColStd_MapOfInteger &theProcessedMap)
 
 Handle (TColStd_HSequenceOfTransient) GEOMImpl_IBlocksOperations
 

Macro Definition Documentation

#define REL_COLLISION_EE   5
#define REL_COLLISION_FF   4
#define REL_COLLISION_VV   3
#define REL_NOT_CONNECTED   0
#define REL_NOT_GLUED   2
#define REL_OK   1
#define REL_UNKNOWN   6

Function Documentation

void FindConnected ( const Standard_Integer  theBlockIndex,
const TColStd_Array2OfInteger &  theRelations,
TColStd_MapOfInteger &  theProcessedMap,
TColStd_MapOfInteger &  theConnectedMap 
)

References REL_NOT_GLUED, and REL_OK.

Handle ( GEOM_Object  )

MakeQuad

MakeQuad2Edges

MakeQuad4Vertices

MakeHexa

MakeHexa2Faces

MakeBlockCompound

GetPoint

GetVertexNearPoint

GetEdge

GetEdgeNearPoint

GetFaceByPoints

GetFaceByEdges

GetOppositeFace

GetFaceNearPoint

GetFaceByNormale

GetShapesNearPoint

GetNonBlocks

RemoveExtraEdges

UnionFaces

CheckAndImprove

GetBlockNearPoint

GetBlockByParts

MakeMultiTransformation1D

MakeMultiTransformation2D

References BLOCK_FACE_FOUR_EDGES, GEOM_FACE, GEOMImpl_BlockDriver::GetID(), Handle(), KO, NULL, OK, and GEOMImpl_IBlocks::SetShapes().

Handle ( TColStd_HSequenceOfTransient  )

ExplodeCompoundOfBlocks

GetBlocksByParts

Propagate

References anIndices, Handle(), and KO.

Standard_Boolean HasAnyConnection ( const Standard_Integer  theBlockIndex,
const TColStd_MapOfInteger &  theWith,
const TColStd_Array2OfInteger &  theRelations,
TColStd_MapOfInteger &  theProcessedMap 
)

References REL_NOT_CONNECTED.

static Standard_Boolean IsQuadrangle ( const TopoDS_Face &  theFace,
const Standard_Real  theToleranceC1 
)
static

It means that it has only 1 wire with 4 edges. If there are more then 4 edges in the wire and theToleranceC1 is not negative the new implementation is used. According to it the face is quadrangular if it is quadrangular according to an old implementation or if it has a single wire with more then 4 edges that form exactly 4 bounds of C1 continuity with the given tolerance.

Parameters
theFacethe face to be checked
theToleranceC1if negative, it is not used; otherwise it is used to check if two neighbor edges of face have C1 continuity.
Returns
Standard_True if the face is quadrangular; Standard_False otherwise.

References aCurve1(), aCurve2(), anAngle, anEdge, anIter(), aVec1(), aVec2(), Curve(), and Handle().