Salome HOME
Merge with PAL/SALOME 2.1.0d
[modules/geom.git] / src / GEOMImpl / GEOMImpl_IBlocksOperations.hxx
index afe3e54853111f0b365fda547108588ecd2fd3a2..1ea16a0539ea67409cea8186e7e2e9074ce7c339 100644 (file)
@@ -19,34 +19,45 @@ class GEOMImpl_IBlocksOperations : public GEOM_IOperations {
   ~GEOMImpl_IBlocksOperations();
 
   // Creation of blocks and block faces
-  Handle(GEOM_Object) MakeQuadFaceFourVertices (Handle(GEOM_Object) thePoint1,
-                                                Handle(GEOM_Object) thePoint2,
-                                                Handle(GEOM_Object) thePoint3,
-                                                Handle(GEOM_Object) thePoint4);
+  Handle(GEOM_Object) MakeQuad (Handle(GEOM_Object) theEdge1,
+                                Handle(GEOM_Object) theEdge2,
+                                Handle(GEOM_Object) theEdge3,
+                                Handle(GEOM_Object) theEdge4);
 
-  Handle(GEOM_Object) MakeQuadFaceFourEdges (Handle(GEOM_Object) theEdge1,
-                                             Handle(GEOM_Object) theEdge2,
-                                             Handle(GEOM_Object) theEdge3,
-                                             Handle(GEOM_Object) theEdge4);
+  Handle(GEOM_Object) MakeQuad2Edges (Handle(GEOM_Object) theEdge1,
+                                      Handle(GEOM_Object) theEdge2);
+
+  Handle(GEOM_Object) MakeQuad4Vertices (Handle(GEOM_Object) thePoint1,
+                                         Handle(GEOM_Object) thePoint2,
+                                         Handle(GEOM_Object) thePoint3,
+                                         Handle(GEOM_Object) thePoint4);
 
-  Handle(GEOM_Object) MakeQuadFaceTwoEdges (Handle(GEOM_Object) theEdge1,
-                                            Handle(GEOM_Object) theEdge2);
+  Handle(GEOM_Object) MakeHexa (Handle(GEOM_Object) theFace1,
+                                Handle(GEOM_Object) theFace2,
+                                Handle(GEOM_Object) theFace3,
+                                Handle(GEOM_Object) theFace4,
+                                Handle(GEOM_Object) theFace5,
+                                Handle(GEOM_Object) theFace6);
 
-  Handle(GEOM_Object) MakeHexaSolidSixFaces (Handle(GEOM_Object) theFace1,
-                                             Handle(GEOM_Object) theFace2,
-                                             Handle(GEOM_Object) theFace3,
-                                             Handle(GEOM_Object) theFace4,
-                                             Handle(GEOM_Object) theFace5,
-                                             Handle(GEOM_Object) theFace6);
+  Handle(GEOM_Object) MakeHexa2Faces (Handle(GEOM_Object) theFace1,
+                                      Handle(GEOM_Object) theFace2);
 
-  Handle(GEOM_Object) MakeHexaSolidTwoFaces (Handle(GEOM_Object) theFace1,
-                                             Handle(GEOM_Object) theFace2);
+  Handle(GEOM_Object) MakeBlockCompound (Handle(GEOM_Object) theCompound);
 
   // Extract elements of blocks and blocks compounds
+  Handle(GEOM_Object) GetPoint (Handle(GEOM_Object) theShape,
+                                const Standard_Real theX,
+                                const Standard_Real theY,
+                                const Standard_Real theZ,
+                                const Standard_Real theEpsilon);
+
   Handle(GEOM_Object) GetEdge (Handle(GEOM_Object) theShape,
                                Handle(GEOM_Object) thePoint1,
                                Handle(GEOM_Object) thePoint2);
 
+  Handle(GEOM_Object) GetEdgeNearPoint (Handle(GEOM_Object) theBlock,
+                                        Handle(GEOM_Object) thePoint);
+
   Handle(GEOM_Object) GetFaceByPoints (Handle(GEOM_Object) theShape,
                                        Handle(GEOM_Object) thePoint1,
                                        Handle(GEOM_Object) thePoint2,
@@ -66,12 +77,31 @@ class GEOMImpl_IBlocksOperations : public GEOM_IOperations {
   Handle(GEOM_Object) GetFaceByNormale (Handle(GEOM_Object) theBlock,
                                         Handle(GEOM_Object) theVector);
 
-  // Extract blocks from blocks compounds
+  // Check blocks compounds
   Standard_Boolean IsCompoundOfBlocks (Handle(GEOM_Object)    theCompound,
                                        const Standard_Integer theMinNbFaces,
                                        const Standard_Integer theMaxNbFaces,
                                        Standard_Integer&      theNbBlocks);
 
+  enum BCErrorType {
+    NOT_BLOCK,
+    INVALID_CONNECTION,
+    NOT_CONNECTED,
+    NOT_GLUED
+  };
+
+  struct BCError {
+    BCErrorType error;
+    list<int>   incriminated;
+  };
+
+  Standard_Boolean CheckCompoundOfBlocks (Handle(GEOM_Object) theCompound,
+                                          list<BCError>&      theErrors);
+
+  TCollection_AsciiString PrintBCErrors (Handle(GEOM_Object)  theCompound,
+                                         const list<BCError>& theErrors);
+
+  // Extract blocks from blocks compounds
   Handle(TColStd_HSequenceOfTransient) ExplodeCompoundOfBlocks
                                       (Handle(GEOM_Object)    theCompound,
                                        const Standard_Integer theMinNbFaces,
@@ -101,16 +131,6 @@ class GEOMImpl_IBlocksOperations : public GEOM_IOperations {
                                                  const Standard_Integer theDirFace1V,
                                                  const Standard_Integer theDirFace2V,
                                                  const Standard_Integer theNbTimesV);
-
-  Handle(GEOM_Object) MakeMultiTranslation1D (Handle(GEOM_Object)    theBlock,
-                                              const Standard_Integer theDirFace,
-                                              const Standard_Integer theNbTimes);
-
-  Handle(GEOM_Object) MakeMultiTranslation2D (Handle(GEOM_Object)    theBlock,
-                                              const Standard_Integer theDirFace1,
-                                              const Standard_Integer theNbTimes1,
-                                              const Standard_Integer theDirFace2,
-                                              const Standard_Integer theNbTimes2);
 };
 
 #endif