0021762: Integration of new Boolean Operation algorithm to OCCT.
authoremv <emv@opencascade.com>
Fri, 8 Feb 2013 13:42:05 +0000 (17:42 +0400)
committeremv <emv@opencascade.com>
Fri, 8 Feb 2013 13:42:05 +0000 (17:42 +0400)
Modifications:
- BRepOffset/BRepOffset_Tool.cxx, Features and Fillets algorithms have been ported on new BO algorithm.
- Old BO algorithm, that was implemented in BOP, BooleanOperations and BOPTools packages, has - been deleted.
- Porting SALOME algorithms to new BOP algorithm.
- Fixing regressions. Rebased on current master.
- Corrections in post treatment of section edges;
- Corrections in the accordance with the bug 0023293;
- Small corrections in the bopcheck and bopargcheck commands.
- NCollection maps have been replaced by NCollection indexed maps to guarantee the constant order of sub-shapes in the result of boolean operation.
- Test case feat featprism M9 has been fixed.
- Test cases chl 902 E3 H3 have been fixed (corrections in the treatment of section edges).
- Test cases caf driver B6 B7, caf named_shape F6 F7 have been modified according to the new order of sub-shapes in the result of boolean operation.
- Test cases blend buildevol G1, blend simple K4, bcommon_complex C7, feat featprism L6 have been modified as they are improvements.
- Test case boolean bsection A3 has been modified according to the new syntax of the bsection command.
- Test cases boolean bfuse_complex J1 P9 have been fixed (the function IsInternalFace has been modified to use the function GetFaceOff);
- Test case chl 902 H3 has been fixed (changes in the treatment of section edges);
- Test case boolean bsection D8 has been modified (removed TODO statement);
- Test case boolean bsection A3 has been modified (as the shapes have been changed).
- Added correction of the tolerance values of the shapes according to the bug 0023610.
- test cases:
    boolean bcommon_complex C3,
    boolean bcut_complex F2 O7,
    boolean bfuse_complex C4 C5 E4,
    boolean bsection B6 M8 M9 N4 N5 N7,
    boolean bfuse_simple ZP6,
    draft angle G8,
    feat featprism S2
have been marked as invalid according to the bug 0022033;
- New value of result has been set in the test cases :
    boolean bopsection D4
    boolean bsection R8
as it is correct.
- test case bugs modalg bug23472 has been rewritten according to the new format of bsection command.
- The classes IntTools_Context and IntTools_ShrunkRange have been replaced by BOPInt_Context and BOPInt_ShrunkRange accordingly.
- The new class BRepAlgoAPI_Check has been added according to the bug 0023648.
- Some regressions have been fixed.
- The following test cases have been marked as invalid or rewritten
    bugs modalg buc60462_2, 60531_2, 60776_1, bug472_1, bug472_2, bug472_3, bug497_3, bug62
    bugs moddata bug26_1, bug26_2,
- The test case bugs modalg buc60533 has been rewritten to use the general fuse algorithm for building the result.
- The new value of the result has been set in the test case bugs modalg 60776_2.
- The following test cases have been rewritten according to the new format of the bsection command
    bugs modlag fra62369, pro18892
    bugs moddata bug75_1, bug75_2
- Corrected BRepAlgoAPI_Check.
- Removed package BOPTColStd.
- Rewritten test cases caf named_shape F8 F9.
- Removed unnecessary comments.
- Corrected the following test scripts :
    boolean bcut_complex(012) O3 O4 O5 O6 O8
    boolean bfuse_complex(013) O5 O6 P8
    boolean bopcommon_complex(021) D8 D9
    boolean bopfuse_complex(022) H1 J6
    boolean boptuc_complex(024) D5
    bugs modalg(006) bug399 bug497_1
    feat featprism(003) C4
- Corrections in the treatment of section edges (putting paves on the curves);
- Corrections in BRepOffset_Tool;
- The following test cases have been rewritten according to the new format of the bsection command
   bugs modalg bug6502, bug6554, bug6766_1, bug6766_3
- The new value of the result has been set in the following test cases
   bugs modalg bug1255, bug1255_1
- The following test cases have been marked as invalid or rewritten
   bugs modalg bug472_2, bug472_3, bug825_2
   bugs moddata bug10603, bug152_1, bug152_2, bug3721_1, bug3721_2, bug3721_3
- The following test cases have been rewritten as improvements
   bugs modalg bug693, bug693_1, bug817_1
   bugs moddata bug3721_5, bug3721_6, bug6862_3, bug6862_4, bug6862_6
- Test cases bugs modlag buc60787_1, buc60787_2, buc60788_2, buc60788_3 have been corrected.
- Fixed some SALOME regressions (modifications in the treatment of the section edges);
- Fixed test case bugs modalg bug23100;
- Test cases bugs modalg bug21754, bug22990 have been corrected according to the new format of the bsection command.
- Test cases bugs modalg bug13116_*, bug23711 have been fixed;
- Test cases bugs modalg bug697_2, bug697_4, bug697_7, bug697_8 have been marked as invalid according to the issue 0022033;
- Test cases bugs modalg bug22109_2, bug22109_3 have been corrected;
- Test case bugs modalg bug18186 has been corrected as it is improvement;
- Test case bugs modalg bug22802 has been deleted as there is no package BOPTColStd.

682 files changed:
adm/UDLIST
src/BOP/BOP.cdl [deleted file]
src/BOP/BOP_Area2dBuilder.cdl [deleted file]
src/BOP/BOP_Area2dBuilder.cxx [deleted file]
src/BOP/BOP_Area3dBuilder.cdl [deleted file]
src/BOP/BOP_Area3dBuilder.cxx [deleted file]
src/BOP/BOP_AreaBuilder.cdl [deleted file]
src/BOP/BOP_AreaBuilder.cxx [deleted file]
src/BOP/BOP_ArgumentAnalyzer.cdl [deleted file]
src/BOP/BOP_ArgumentAnalyzer.cxx [deleted file]
src/BOP/BOP_ArgumentAnalyzer.lxx [deleted file]
src/BOP/BOP_BlockBuilder.cdl [deleted file]
src/BOP/BOP_BlockBuilder.cxx [deleted file]
src/BOP/BOP_BlockIterator.cdl [deleted file]
src/BOP/BOP_BlockIterator.cxx [deleted file]
src/BOP/BOP_Builder.cdl [deleted file]
src/BOP/BOP_Builder.cxx [deleted file]
src/BOP/BOP_BuilderTools.cdl [deleted file]
src/BOP/BOP_BuilderTools.cxx [deleted file]
src/BOP/BOP_CheckResult.cdl [deleted file]
src/BOP/BOP_CheckResult.cxx [deleted file]
src/BOP/BOP_CompositeClassifier.cdl [deleted file]
src/BOP/BOP_CompositeClassifier.cxx [deleted file]
src/BOP/BOP_ConnexityBlock.cdl [deleted file]
src/BOP/BOP_ConnexityBlock.cxx [deleted file]
src/BOP/BOP_CorrectTolerances.cdl [deleted file]
src/BOP/BOP_CorrectTolerances.cxx [deleted file]
src/BOP/BOP_Draw.cdl [deleted file]
src/BOP/BOP_Draw.cxx [deleted file]
src/BOP/BOP_EdgeInfo.cdl [deleted file]
src/BOP/BOP_EdgeInfo.cxx [deleted file]
src/BOP/BOP_EmptyBuilder.cdl [deleted file]
src/BOP/BOP_EmptyBuilder.cxx [deleted file]
src/BOP/BOP_FaceAreaBuilder.cdl [deleted file]
src/BOP/BOP_FaceAreaBuilder.cxx [deleted file]
src/BOP/BOP_FaceBuilder.cdl [deleted file]
src/BOP/BOP_FaceBuilder.cxx [deleted file]
src/BOP/BOP_FaceInfo.cdl [deleted file]
src/BOP/BOP_FaceInfo.cxx [deleted file]
src/BOP/BOP_HistoryCollector.cdl [deleted file]
src/BOP/BOP_HistoryCollector.cxx [deleted file]
src/BOP/BOP_Loop.cdl [deleted file]
src/BOP/BOP_Loop.cxx [deleted file]
src/BOP/BOP_LoopClassifier.cdl [deleted file]
src/BOP/BOP_LoopClassifier.cxx [deleted file]
src/BOP/BOP_LoopSet.cdl [deleted file]
src/BOP/BOP_LoopSet.cxx [deleted file]
src/BOP/BOP_Refiner.cdl [deleted file]
src/BOP/BOP_Refiner.cxx [deleted file]
src/BOP/BOP_SDFWESFiller.cdl [deleted file]
src/BOP/BOP_SDFWESFiller.cxx [deleted file]
src/BOP/BOP_SFSCorrector.cdl [deleted file]
src/BOP/BOP_SFSCorrector.cxx [deleted file]
src/BOP/BOP_Section.cdl [deleted file]
src/BOP/BOP_Section.cxx [deleted file]
src/BOP/BOP_SectionHistoryCollector.cdl [deleted file]
src/BOP/BOP_SectionHistoryCollector.cxx [deleted file]
src/BOP/BOP_ShapeSet.cdl [deleted file]
src/BOP/BOP_ShapeSet.cxx [deleted file]
src/BOP/BOP_ShellFaceClassifier.cdl [deleted file]
src/BOP/BOP_ShellFaceClassifier.cxx [deleted file]
src/BOP/BOP_ShellFaceSet.cdl [deleted file]
src/BOP/BOP_ShellFaceSet.cxx [deleted file]
src/BOP/BOP_ShellFaceSet.lxx [deleted file]
src/BOP/BOP_ShellShell.cdl [deleted file]
src/BOP/BOP_ShellShell.cxx [deleted file]
src/BOP/BOP_ShellSolid.cdl [deleted file]
src/BOP/BOP_ShellSolid.cxx [deleted file]
src/BOP/BOP_ShellSolidHistoryCollector.cdl [deleted file]
src/BOP/BOP_ShellSolidHistoryCollector.cxx [deleted file]
src/BOP/BOP_ShellSolid_1.cxx [deleted file]
src/BOP/BOP_ShellSolid_2.cxx [deleted file]
src/BOP/BOP_ShellSolid_3.cxx [deleted file]
src/BOP/BOP_ShellSplitter.cdl [deleted file]
src/BOP/BOP_ShellSplitter.cxx [deleted file]
src/BOP/BOP_SolidAreaBuilder.cdl [deleted file]
src/BOP/BOP_SolidAreaBuilder.cxx [deleted file]
src/BOP/BOP_SolidBuilder.cdl [deleted file]
src/BOP/BOP_SolidBuilder.cxx [deleted file]
src/BOP/BOP_SolidClassifier.cdl [deleted file]
src/BOP/BOP_SolidClassifier.cxx [deleted file]
src/BOP/BOP_SolidSolid.cdl [deleted file]
src/BOP/BOP_SolidSolid.cxx [deleted file]
src/BOP/BOP_SolidSolidHistoryCollector.cdl [deleted file]
src/BOP/BOP_SolidSolidHistoryCollector.cxx [deleted file]
src/BOP/BOP_SolidSolid_1.cxx [deleted file]
src/BOP/BOP_WESCorrector.cdl [deleted file]
src/BOP/BOP_WESCorrector.cxx [deleted file]
src/BOP/BOP_WireEdgeClassifier.cdl [deleted file]
src/BOP/BOP_WireEdgeClassifier.cxx [deleted file]
src/BOP/BOP_WireEdgeSet.cdl [deleted file]
src/BOP/BOP_WireEdgeSet.cxx [deleted file]
src/BOP/BOP_WireShape.cdl [deleted file]
src/BOP/BOP_WireShape.cxx [deleted file]
src/BOP/BOP_WireShell.cdl [deleted file]
src/BOP/BOP_WireShell.cxx [deleted file]
src/BOP/BOP_WireSolid.cdl [deleted file]
src/BOP/BOP_WireSolid.cxx [deleted file]
src/BOP/BOP_WireSolidHistoryCollector.cdl [deleted file]
src/BOP/BOP_WireSolidHistoryCollector.cxx [deleted file]
src/BOP/BOP_WireSplitter.cdl [deleted file]
src/BOP/BOP_WireSplitter.cxx [deleted file]
src/BOP/BOP_WireSplitter.lxx [deleted file]
src/BOP/BOP_WireWire.cdl [deleted file]
src/BOP/BOP_WireWire.cxx [deleted file]
src/BOP/FILES [deleted file]
src/BOPAlgo/BOPAlgo.cdl [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_Algo.cdl [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_Algo.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cdl [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.lxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_BOP.cdl [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_BOP.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_BOP_1.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_Builder.cdl [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_Builder.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_BuilderArea.cdl [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_BuilderArea.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_BuilderFace.cdl [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_BuilderFace.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_BuilderShape.cdl [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_BuilderShape.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_BuilderSolid.cdl [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_BuilderSolid.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_Builder_1.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_Builder_2.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_Builder_3.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_Builder_4.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_CheckResult.cdl [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_CheckResult.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_CheckerSI.cdl [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_CheckerSI.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_ListOfCheckResult.hxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_PaveFiller.cdl [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_PaveFiller.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_PaveFiller_1.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_SectionAttribute.cdl [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_SectionAttribute.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_SectionAttribute.lxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_Tools.cdl [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_Tools.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_WireEdgeSet.cdl [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_WireEdgeSet.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_WireEdgeSet.lxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_WireSplitter.cdl [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_WireSplitter.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_WireSplitter.lxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_WireSplitter_1.cxx [new file with mode: 0644]
src/BOPAlgo/FILES [new file with mode: 0644]
src/BOPCol/BOPCol.cdl [new file with mode: 0644]
src/BOPCol/BOPCol_Array1.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_BaseAllocator.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_DataMapOfIntegerInteger.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_DataMapOfIntegerListOfInteger.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_DataMapOfIntegerListOfShape.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_DataMapOfIntegerMapOfInteger.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_DataMapOfIntegerShape.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_DataMapOfShapeAddress.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_DataMapOfShapeInteger.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_DataMapOfShapeListOfShape.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_DataMapOfShapeShape.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_DataMapOfTransientAddress.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_IndexedDataMapOfIntegerListOfInteger.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_IndexedDataMapOfShapeBox.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_IndexedDataMapOfShapeInteger.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_IndexedDataMapOfShapeListOfShape.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_IndexedMapOfInteger.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_IndexedMapOfShape.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_ListOfInteger.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_ListOfListOfShape.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_ListOfShape.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_MapOfInteger.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_MapOfOrientedShape.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_MapOfShape.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_PInteger.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_PListOfInteger.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_SequenceOfPnt2d.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_SequenceOfReal.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_SequenceOfShape.hxx [new file with mode: 0644]
src/BOPCol/BOPCol_VectorOfInteger.hxx [new file with mode: 0644]
src/BOPCol/FILES [new file with mode: 0644]
src/BOPDS/BOPDS.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_BoxBndTree.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_BoxBndTree.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_CommonBlock.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_CommonBlock.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_CoupleOfPaveBlocks.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_Curve.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_Curve.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_Curve.lxx [new file with mode: 0644]
src/BOPDS/BOPDS_DS.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_DS.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_DS.lxx [new file with mode: 0644]
src/BOPDS/BOPDS_DataMapOfIntegerListOfPaveBlock.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_DataMapOfPassKeyListOfPaveBlock.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_DataMapOfPaveBlockListOfInteger.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_DataMapOfPaveBlockListOfPaveBlock.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_DataMapOfShapeCoupleOfPaveBlocks.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_FaceInfo.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_FaceInfo.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_FaceInfo.lxx [new file with mode: 0644]
src/BOPDS/BOPDS_IndexRange.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_IndexRange.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_IndexRange.lxx [new file with mode: 0644]
src/BOPDS/BOPDS_IndexedDataMapOfPaveBlockListOfInteger.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_IndexedDataMapOfPaveBlockListOfPaveBlock.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_IndexedMapOfPaveBlock.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_Interf.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_Iterator.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_Iterator.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_IteratorSI.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_IteratorSI.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_ListIteratorOfListOfPassKeyBoolean.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_ListOfPassKeyBoolean.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_ListOfPave.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_ListOfPaveBlock.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_MapOfCommonBlock.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_MapOfPassKey.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_MapOfPassKeyBoolean.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_MapOfPave.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_MapOfPaveBlock.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_PassKey.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_PassKey.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_PassKey.lxx [new file with mode: 0644]
src/BOPDS/BOPDS_PassKeyBoolean.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_PassKeyBoolean.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_PassKeyBoolean.lxx [new file with mode: 0644]
src/BOPDS/BOPDS_PassKeyMapHasher.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_PassKeyMapHasher.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_PassKeyMapHasher.lxx [new file with mode: 0644]
src/BOPDS/BOPDS_Pave.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_Pave.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_Pave.lxx [new file with mode: 0644]
src/BOPDS/BOPDS_PaveBlock.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_PaveBlock.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_PaveMapHasher.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_PaveMapHasher.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_PaveMapHasher.lxx [new file with mode: 0644]
src/BOPDS/BOPDS_Point.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_Point.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_Point.lxx [new file with mode: 0644]
src/BOPDS/BOPDS_ShapeInfo.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_ShapeInfo.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_ShapeInfo.lxx [new file with mode: 0644]
src/BOPDS/BOPDS_SubIterator.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_SubIterator.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_Tools.cdl [new file with mode: 0644]
src/BOPDS/BOPDS_Tools.cxx [new file with mode: 0644]
src/BOPDS/BOPDS_Tools.lxx [new file with mode: 0644]
src/BOPDS/BOPDS_VectorOfCurve.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_VectorOfFaceInfo.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_VectorOfIndexRange.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_VectorOfInterfEE.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_VectorOfInterfEF.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_VectorOfInterfFF.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_VectorOfInterfVE.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_VectorOfInterfVF.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_VectorOfInterfVV.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_VectorOfListOfPassKeyBoolean.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_VectorOfListOfPaveBlock.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_VectorOfPoint.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_VectorOfShapeInfo.hxx [new file with mode: 0644]
src/BOPDS/FILES [new file with mode: 0644]
src/BOPInt/BOPInt.cdl [new file with mode: 0644]
src/BOPInt/BOPInt_Context.cdl [new file with mode: 0644]
src/BOPInt/BOPInt_Context.cxx [new file with mode: 0644]
src/BOPInt/BOPInt_ShrunkRange.cdl [new file with mode: 0644]
src/BOPInt/BOPInt_ShrunkRange.cxx [new file with mode: 0644]
src/BOPInt/BOPInt_Tools.cdl [new file with mode: 0644]
src/BOPInt/BOPInt_Tools.cxx [new file with mode: 0644]
src/BOPTColStd/BOPTColStd.cdl [deleted file]
src/BOPTColStd/BOPTColStd_CArray1.cdl [deleted file]
src/BOPTColStd/BOPTColStd_CArray1.gxx [deleted file]
src/BOPTColStd/BOPTColStd_Dump.cdl [deleted file]
src/BOPTColStd/BOPTColStd_Dump.cxx [deleted file]
src/BOPTColStd/BOPTColStd_Failure.cdl [deleted file]
src/BOPTColStd/BOPTColStd_Failure.cxx [deleted file]
src/BOPTColStd/BOPTColStd_ShapeWithRank.cdl [deleted file]
src/BOPTColStd/BOPTColStd_ShapeWithRank.cxx [deleted file]
src/BOPTColStd/BOPTColStd_ShapeWithRankHasher.cdl [deleted file]
src/BOPTColStd/BOPTColStd_ShapeWithRankHasher.cxx [deleted file]
src/BOPTest/BOPTest.cdl
src/BOPTest/BOPTest.cxx
src/BOPTest/BOPTest_BOPCommands.cxx
src/BOPTest/BOPTest_CheckCommands.cxx [changed mode: 0755->0644]
src/BOPTest/BOPTest_CurveCommands.cxx [deleted file]
src/BOPTest/BOPTest_DrawableShape.cxx
src/BOPTest/BOPTest_EFCommands.cxx [deleted file]
src/BOPTest/BOPTest_LowCommands.cxx
src/BOPTest/BOPTest_MTestCommands.cxx [deleted file]
src/BOPTest/BOPTest_ObjCommands.cxx [new file with mode: 0644]
src/BOPTest/BOPTest_Objects.cdl [new file with mode: 0644]
src/BOPTest/BOPTest_Objects.cxx [new file with mode: 0644]
src/BOPTest/BOPTest_PartitionCommands.cxx [new file with mode: 0644]
src/BOPTest/BOPTest_TSTCommands.cxx [deleted file]
src/BOPTest/BOPTest_TolerCommands.cxx [changed mode: 0755->0644]
src/BOPTest/BOPTest_WSplitCommands.cxx [deleted file]
src/BOPTest/FILES
src/BOPTools/BOPTools.cdl
src/BOPTools/BOPTools.cxx [new file with mode: 0644]
src/BOPTools/BOPTools_AlgoTools.cdl [new file with mode: 0644]
src/BOPTools/BOPTools_AlgoTools.cxx [new file with mode: 0644]
src/BOPTools/BOPTools_AlgoTools2D.cdl [new file with mode: 0644]
src/BOPTools/BOPTools_AlgoTools2D.cxx [new file with mode: 0755]
src/BOPTools/BOPTools_AlgoTools3D.cdl [new file with mode: 0644]
src/BOPTools/BOPTools_AlgoTools3D.cxx [new file with mode: 0644]
src/BOPTools/BOPTools_AlgoTools_1.cxx [new file with mode: 0644]
src/BOPTools/BOPTools_AlgoTools_2.cxx [new file with mode: 0644]
src/BOPTools/BOPTools_CheckResult.cdl [deleted file]
src/BOPTools/BOPTools_CheckResult.cxx [deleted file]
src/BOPTools/BOPTools_Checker.cdl [deleted file]
src/BOPTools/BOPTools_Checker.cxx [deleted file]
src/BOPTools/BOPTools_CommonBlock.cdl [deleted file]
src/BOPTools/BOPTools_CommonBlock.cxx [deleted file]
src/BOPTools/BOPTools_CommonBlockAPI.cdl [deleted file]
src/BOPTools/BOPTools_CommonBlockAPI.cxx [deleted file]
src/BOPTools/BOPTools_ComparePave.cdl [deleted file]
src/BOPTools/BOPTools_ComparePave.cxx [deleted file]
src/BOPTools/BOPTools_ConnexityBlock.hxx [new file with mode: 0644]
src/BOPTools/BOPTools_CoupleOfInteger.cdl [deleted file]
src/BOPTools/BOPTools_CoupleOfInteger.cxx [deleted file]
src/BOPTools/BOPTools_CoupleOfIntegerMapHasher.cdl [deleted file]
src/BOPTools/BOPTools_CoupleOfIntegerMapHasher.cxx [deleted file]
src/BOPTools/BOPTools_CoupleOfShape.hxx [new file with mode: 0644]
src/BOPTools/BOPTools_Curve.cdl [deleted file]
src/BOPTools/BOPTools_Curve.cxx [deleted file]
src/BOPTools/BOPTools_DEInfo.cdl [deleted file]
src/BOPTools/BOPTools_DEInfo.cxx [deleted file]
src/BOPTools/BOPTools_DEProcessor.cdl [deleted file]
src/BOPTools/BOPTools_DEProcessor.cxx [deleted file]
src/BOPTools/BOPTools_DSFiller.cdl [deleted file]
src/BOPTools/BOPTools_DSFiller.cxx [deleted file]
src/BOPTools/BOPTools_DSFiller.lxx [deleted file]
src/BOPTools/BOPTools_DataMapOfShapeSet.hxx [new file with mode: 0644]
src/BOPTools/BOPTools_EEInterference.cdl [deleted file]
src/BOPTools/BOPTools_EEInterference.cxx [deleted file]
src/BOPTools/BOPTools_ESInterference.cdl [deleted file]
src/BOPTools/BOPTools_ESInterference.cxx [deleted file]
src/BOPTools/BOPTools_EdgeSet.cdl [new file with mode: 0644]
src/BOPTools/BOPTools_EdgeSet.cxx [new file with mode: 0644]
src/BOPTools/BOPTools_EdgeSet.lxx [new file with mode: 0644]
src/BOPTools/BOPTools_Interference.cdl [deleted file]
src/BOPTools/BOPTools_Interference.cxx [deleted file]
src/BOPTools/BOPTools_InterferenceLine.cdl [deleted file]
src/BOPTools/BOPTools_InterferenceLine.cxx [deleted file]
src/BOPTools/BOPTools_InterferencePool.cdl [deleted file]
src/BOPTools/BOPTools_InterferencePool.cxx [deleted file]
src/BOPTools/BOPTools_IteratorOfCoupleOfShape.cdl [deleted file]
src/BOPTools/BOPTools_IteratorOfCoupleOfShape.cxx [deleted file]
src/BOPTools/BOPTools_ListOfConnexityBlock.hxx [new file with mode: 0644]
src/BOPTools/BOPTools_ListOfCoupleOfShape.hxx [new file with mode: 0644]
src/BOPTools/BOPTools_ListOfEdgeSet.hxx [new file with mode: 0644]
src/BOPTools/BOPTools_ListOfShapeSet.hxx [new file with mode: 0644]
src/BOPTools/BOPTools_MapOfSet.hxx [new file with mode: 0644]
src/BOPTools/BOPTools_PCurveMaker.cdl [deleted file]
src/BOPTools/BOPTools_PCurveMaker.cxx [deleted file]
src/BOPTools/BOPTools_Pave.cdl [deleted file]
src/BOPTools/BOPTools_Pave.cxx [deleted file]
src/BOPTools/BOPTools_PaveBlock.cdl [deleted file]
src/BOPTools/BOPTools_PaveBlock.cxx [deleted file]
src/BOPTools/BOPTools_PaveBlockIterator.cdl [deleted file]
src/BOPTools/BOPTools_PaveBlockIterator.cxx [deleted file]
src/BOPTools/BOPTools_PaveBlockMapHasher.cdl [deleted file]
src/BOPTools/BOPTools_PaveBlockMapHasher.cxx [deleted file]
src/BOPTools/BOPTools_PaveFiller.cdl [deleted file]
src/BOPTools/BOPTools_PaveFiller.cxx [deleted file]
src/BOPTools/BOPTools_PaveFiller_1.cxx [deleted file]
src/BOPTools/BOPTools_PaveFiller_2.cxx [deleted file]
src/BOPTools/BOPTools_PaveFiller_3.cxx [deleted file]
src/BOPTools/BOPTools_PaveFiller_4.cxx [deleted file]
src/BOPTools/BOPTools_PaveSet.cdl [deleted file]
src/BOPTools/BOPTools_PaveSet.cxx [deleted file]
src/BOPTools/BOPTools_PointBetween.cdl [deleted file]
src/BOPTools/BOPTools_PointBetween.cxx [deleted file]
src/BOPTools/BOPTools_RoughShapeIntersector.cdl [deleted file]
src/BOPTools/BOPTools_RoughShapeIntersector.cxx [deleted file]
src/BOPTools/BOPTools_SSInterference.cdl [deleted file]
src/BOPTools/BOPTools_SSInterference.cxx [deleted file]
src/BOPTools/BOPTools_SSIntersectionAttribute.cdl [deleted file]
src/BOPTools/BOPTools_SSIntersectionAttribute.cxx [deleted file]
src/BOPTools/BOPTools_SSIntersectionAttribute.lxx [deleted file]
src/BOPTools/BOPTools_Set.cdl [new file with mode: 0644]
src/BOPTools/BOPTools_Set.cxx [new file with mode: 0644]
src/BOPTools/BOPTools_Set.lxx [new file with mode: 0644]
src/BOPTools/BOPTools_SetMapHasher.cdl [new file with mode: 0644]
src/BOPTools/BOPTools_SetMapHasher.cxx [new file with mode: 0644]
src/BOPTools/BOPTools_SetMapHasher.lxx [new file with mode: 0644]
src/BOPTools/BOPTools_ShapeSet.cdl [new file with mode: 0644]
src/BOPTools/BOPTools_ShapeSet.cxx [new file with mode: 0644]
src/BOPTools/BOPTools_ShapeSet.lxx [new file with mode: 0644]
src/BOPTools/BOPTools_ShapeShapeInterference.cdl [deleted file]
src/BOPTools/BOPTools_ShapeShapeInterference.cxx [deleted file]
src/BOPTools/BOPTools_SolidStateFiller.cdl [deleted file]
src/BOPTools/BOPTools_SolidStateFiller.cxx [deleted file]
src/BOPTools/BOPTools_StateFiller.cdl [deleted file]
src/BOPTools/BOPTools_StateFiller.cxx [deleted file]
src/BOPTools/BOPTools_Tools.cdl [deleted file]
src/BOPTools/BOPTools_Tools.cxx [deleted file]
src/BOPTools/BOPTools_Tools2D.cdl [deleted file]
src/BOPTools/BOPTools_Tools2D.cxx [deleted file]
src/BOPTools/BOPTools_Tools3D.cdl [deleted file]
src/BOPTools/BOPTools_Tools3D.cxx [deleted file]
src/BOPTools/BOPTools_Tools3D_1.cxx [deleted file]
src/BOPTools/BOPTools_Tools3D_2.cxx [deleted file]
src/BOPTools/BOPTools_VEInterference.cdl [deleted file]
src/BOPTools/BOPTools_VEInterference.cxx [deleted file]
src/BOPTools/BOPTools_VSInterference.cdl [deleted file]
src/BOPTools/BOPTools_VSInterference.cxx [deleted file]
src/BOPTools/BOPTools_VVInterference.cdl [deleted file]
src/BOPTools/BOPTools_VVInterference.cxx [deleted file]
src/BOPTools/BOPTools_WireStateFiller.cdl [deleted file]
src/BOPTools/BOPTools_WireStateFiller.cxx [deleted file]
src/BOPTools/FILES
src/BRepAlgo/BRepAlgo.cdl
src/BRepAlgo/BRepAlgo_TopOpe.cdl [deleted file]
src/BRepAlgo/BRepAlgo_TopOpe.cxx [deleted file]
src/BRepAlgoAPI/BRepAlgoAPI.cdl
src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.cdl
src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.cxx
src/BRepAlgoAPI/BRepAlgoAPI_Check.cdl [new file with mode: 0644]
src/BRepAlgoAPI/BRepAlgoAPI_Check.cxx [new file with mode: 0644]
src/BRepAlgoAPI/BRepAlgoAPI_Common.cdl
src/BRepAlgoAPI/BRepAlgoAPI_Common.cxx
src/BRepAlgoAPI/BRepAlgoAPI_Cut.cdl
src/BRepAlgoAPI/BRepAlgoAPI_Cut.cxx
src/BRepAlgoAPI/BRepAlgoAPI_Fuse.cdl
src/BRepAlgoAPI/BRepAlgoAPI_Fuse.cxx
src/BRepAlgoAPI/BRepAlgoAPI_Section.cdl
src/BRepAlgoAPI/BRepAlgoAPI_Section.cxx
src/BRepFeat/BRepFeat.cdl
src/BRepFeat/BRepFeat_Builder.cdl
src/BRepFeat/BRepFeat_Builder.cxx
src/BRepFeat/BRepFeat_Builder.lxx [deleted file]
src/BRepFeat/BRepFeat_Form.cdl
src/BRepFeat/BRepFeat_Form.cxx
src/BRepFeat/BRepFeat_LocalOperation.cdl [deleted file]
src/BRepFeat/BRepFeat_LocalOperation.cxx [deleted file]
src/BRepFeat/BRepFeat_LocalOperation.lxx [deleted file]
src/BRepFeat/BRepFeat_MakeCylindricalHole.cdl
src/BRepFeat/BRepFeat_MakeCylindricalHole.cxx
src/BRepFeat/BRepFeat_MakeCylindricalHole.lxx
src/BRepFeat/BRepFeat_MakeLinearForm.cxx
src/BRepFeat/BRepFeat_MakeRevol.cxx
src/BRepFeat/BRepFeat_MakeRevolutionForm.cxx
src/BRepFeat/BRepFeat_RibSlot.cdl
src/BRepFeat/BRepFeat_RibSlot.cxx
src/BRepFill/BRepFill_TrimShellCorner.cxx
src/BRepOffset/BRepOffset.cdl
src/BRepOffset/BRepOffset_Tool.cxx
src/BRepTest/BRepTest_FeatureCommands.cxx
src/BRepTest/BRepTest_FilletCommands.cxx
src/BooleanOperations/BooleanOperations.cdl [deleted file]
src/BooleanOperations/BooleanOperations_AncestorsAndSuccessors.cdl [deleted file]
src/BooleanOperations/BooleanOperations_AncestorsAndSuccessors.cxx [deleted file]
src/BooleanOperations/BooleanOperations_AncestorsAndSuccessors.lxx [deleted file]
src/BooleanOperations/BooleanOperations_AncestorsSeqAndSuccessorsSeq.cdl [deleted file]
src/BooleanOperations/BooleanOperations_AncestorsSeqAndSuccessorsSeq.cxx [deleted file]
src/BooleanOperations/BooleanOperations_AncestorsSeqAndSuccessorsSeq.lxx [deleted file]
src/BooleanOperations/BooleanOperations_Explorer.cdl [deleted file]
src/BooleanOperations/BooleanOperations_Explorer.cxx [deleted file]
src/BooleanOperations/BooleanOperations_OnceExplorer.cdl [deleted file]
src/BooleanOperations/BooleanOperations_OnceExplorer.cxx [deleted file]
src/BooleanOperations/BooleanOperations_ShapeAndInterferences.cdl [deleted file]
src/BooleanOperations/BooleanOperations_ShapeAndInterferences.cxx [deleted file]
src/BooleanOperations/BooleanOperations_ShapeAndInterferences.lxx [deleted file]
src/BooleanOperations/BooleanOperations_ShapesDataStructure.cdl [deleted file]
src/BooleanOperations/BooleanOperations_ShapesDataStructure.cxx [deleted file]
src/IntPolyh/IntPolyh_MaillageAffinage.cxx
src/IntTools/IntTools.cdl
src/IntTools/IntTools_BeanFaceIntersector.cdl
src/IntTools/IntTools_BeanFaceIntersector.cxx
src/IntTools/IntTools_Context.cdl [deleted file]
src/IntTools/IntTools_Context.cxx [deleted file]
src/IntTools/IntTools_EdgeEdge.cxx
src/IntTools/IntTools_EdgeFace.cdl
src/IntTools/IntTools_EdgeFace.cxx
src/IntTools/IntTools_FaceFace.cdl
src/IntTools/IntTools_FaceFace.cxx
src/IntTools/IntTools_ShrunkRange.cdl [deleted file]
src/IntTools/IntTools_ShrunkRange.cxx [deleted file]
src/LocOpe/LocOpe.cdl
src/LocOpe/LocOpe_Builder.cdl [deleted file]
src/LocOpe/LocOpe_Builder.cxx [deleted file]
src/LocOpe/LocOpe_Builder.lxx [deleted file]
src/QABugs/QABugs_11.cxx
src/QANewBRepNaming/QANewBRepNaming_ImportShape.cxx
src/QANewModTopOpe/QANewModTopOpe.cdl
src/QANewModTopOpe/QANewModTopOpe_Glue.cxx
src/QANewModTopOpe/QANewModTopOpe_Glue_SDFaces.cxx
src/QANewModTopOpe/QANewModTopOpe_Glue_shell.cxx
src/QANewModTopOpe/QANewModTopOpe_Intersection.cxx
src/QANewModTopOpe/QANewModTopOpe_Tools.cdl
src/QANewModTopOpe/QANewModTopOpe_Tools.cxx
src/TKBO/PACKAGES
tests/blend/buildevol/G1
tests/blend/simple/K4
tests/boolean/bcommon_2d/A7
tests/boolean/bcommon_2d/B1
tests/boolean/bcommon_complex/C3
tests/boolean/bcommon_complex/C7
tests/boolean/bcut_complex/O3
tests/boolean/bcut_complex/O4
tests/boolean/bcut_complex/O5
tests/boolean/bcut_complex/O6
tests/boolean/bcut_complex/O7
tests/boolean/bcut_complex/O8
tests/boolean/bfuse_complex/C4
tests/boolean/bfuse_complex/C5
tests/boolean/bfuse_complex/E4
tests/boolean/bfuse_complex/O5
tests/boolean/bfuse_complex/O6
tests/boolean/bfuse_complex/P1
tests/boolean/bfuse_complex/P8
tests/boolean/bfuse_complex/Q7
tests/boolean/bfuse_complex/Q8
tests/boolean/bfuse_complex/Q9
tests/boolean/bfuse_complex/S2
tests/boolean/bopcommon_2d/A7
tests/boolean/bopcommon_2d/B1
tests/boolean/bopcommon_complex/D8
tests/boolean/bopcommon_complex/D9
tests/boolean/bopfuse_complex/H1
tests/boolean/bopfuse_complex/J6
tests/boolean/bopfuse_simple/ZP6
tests/boolean/bopsection/D4
tests/boolean/boptuc_complex/D5
tests/boolean/bsection/A3
tests/boolean/bsection/B6
tests/boolean/bsection/C9
tests/boolean/bsection/D8
tests/boolean/bsection/E8
tests/boolean/bsection/H3
tests/boolean/bsection/H4
tests/boolean/bsection/H5
tests/boolean/bsection/H6
tests/boolean/bsection/H7
tests/boolean/bsection/H8
tests/boolean/bsection/H9
tests/boolean/bsection/I1
tests/boolean/bsection/I2
tests/boolean/bsection/I3
tests/boolean/bsection/I4
tests/boolean/bsection/I5
tests/boolean/bsection/I6
tests/boolean/bsection/I7
tests/boolean/bsection/I8
tests/boolean/bsection/I9
tests/boolean/bsection/J1
tests/boolean/bsection/J2
tests/boolean/bsection/J3
tests/boolean/bsection/J4
tests/boolean/bsection/J5
tests/boolean/bsection/J6
tests/boolean/bsection/J7
tests/boolean/bsection/J8
tests/boolean/bsection/J9
tests/boolean/bsection/K1
tests/boolean/bsection/K2
tests/boolean/bsection/K3
tests/boolean/bsection/K4
tests/boolean/bsection/K5
tests/boolean/bsection/K6
tests/boolean/bsection/K7
tests/boolean/bsection/K8
tests/boolean/bsection/K9
tests/boolean/bsection/L1
tests/boolean/bsection/L2
tests/boolean/bsection/L3
tests/boolean/bsection/L4
tests/boolean/bsection/L5
tests/boolean/bsection/L6
tests/boolean/bsection/L7
tests/boolean/bsection/L8
tests/boolean/bsection/L9
tests/boolean/bsection/M1
tests/boolean/bsection/M2
tests/boolean/bsection/M3
tests/boolean/bsection/M4
tests/boolean/bsection/M5
tests/boolean/bsection/M6
tests/boolean/bsection/M7
tests/boolean/bsection/M8
tests/boolean/bsection/M9
tests/boolean/bsection/N2
tests/boolean/bsection/N4
tests/boolean/bsection/N5
tests/boolean/bsection/N6
tests/boolean/bsection/N7
tests/boolean/bsection/O2
tests/boolean/bsection/O5
tests/boolean/bsection/O6
tests/boolean/bsection/P1
tests/boolean/bsection/P2
tests/boolean/bsection/P3
tests/boolean/bsection/P4
tests/boolean/bsection/P5
tests/boolean/bsection/P6
tests/boolean/bsection/P7
tests/boolean/bsection/P8
tests/boolean/bsection/R5
tests/boolean/bsection/R8
tests/boolean/bsection/S4
tests/bugs/modalg_1/buc60462_2
tests/bugs/modalg_1/buc60531_2
tests/bugs/modalg_1/buc60533
tests/bugs/modalg_1/buc60776_1
tests/bugs/modalg_1/buc60776_2
tests/bugs/modalg_1/buc60787_1
tests/bugs/modalg_1/buc60787_2
tests/bugs/modalg_1/buc60788_2
tests/bugs/modalg_1/buc60788_3
tests/bugs/modalg_1/bug1255
tests/bugs/modalg_1/bug1255_1
tests/bugs/modalg_1/bug18186
tests/bugs/modalg_2/bug21754
tests/bugs/modalg_2/bug22109_2
tests/bugs/modalg_2/bug22109_3
tests/bugs/modalg_2/bug22990
tests/bugs/modalg_2/bug23100
tests/bugs/modalg_2/bug23472
tests/bugs/modalg_2/bug472_2
tests/bugs/modalg_2/bug472_3
tests/bugs/modalg_2/bug497_1
tests/bugs/modalg_2/bug497_3
tests/bugs/modalg_4/bug62
tests/bugs/modalg_4/bug6502
tests/bugs/modalg_4/bug6554
tests/bugs/modalg_4/bug6766_1
tests/bugs/modalg_4/bug6766_3
tests/bugs/modalg_4/bug693
tests/bugs/modalg_4/bug693_1
tests/bugs/modalg_4/bug697_2
tests/bugs/modalg_4/bug697_4
tests/bugs/modalg_4/bug697_7
tests/bugs/modalg_4/bug697_8
tests/bugs/modalg_4/bug817_1
tests/bugs/modalg_4/bug825_2
tests/bugs/modalg_4/fra62369
tests/bugs/modalg_4/pro18892
tests/bugs/moddata_1/bug152_1
tests/bugs/moddata_1/bug152_2
tests/bugs/moddata_2/bug26_1
tests/bugs/moddata_2/bug26_2
tests/bugs/moddata_2/bug3721_1
tests/bugs/moddata_2/bug3721_2
tests/bugs/moddata_2/bug3721_3
tests/bugs/moddata_2/bug3721_5
tests/bugs/moddata_2/bug3721_6
tests/bugs/moddata_2/bug6862_3
tests/bugs/moddata_2/bug6862_4
tests/bugs/moddata_2/bug6862_6
tests/bugs/moddata_2/bug75_1
tests/bugs/moddata_2/bug75_2
tests/caf/driver/B6
tests/caf/driver/B7
tests/caf/named_shape/F6
tests/caf/named_shape/F7
tests/caf/named_shape/F8
tests/caf/named_shape/F9
tests/draft/angle/G8
tests/feat/featlf/C8
tests/feat/featlf/C9
tests/feat/featlf/D6
tests/feat/featprism/C4
tests/feat/featprism/G3
tests/feat/featprism/L6
tests/feat/featprism/N1
tests/feat/featprism/O5
tests/feat/featprism/R5
tests/feat/featprism/S2
tests/feat/featrevol/J7
tests/feat/featrf/A3
tests/feat/featrf/B1

index e55a28e..230909c 100644 (file)
@@ -92,8 +92,6 @@ t TKG3d
 t TKGeomBase
 p AppBlend
 p ApproxInt
-p BOP
-p BOPTColStd
 p BOPTools
 p BRepAlgo
 p BRepAlgoAPI
@@ -124,7 +122,6 @@ p BiTgte
 p Bisector
 p Blend
 p BlendFunc
-p BooleanOperations
 p ChFi2d
 p ChFi3d
 p ChFiDS
@@ -489,3 +486,7 @@ t TKQADraw
 p QADNaming
 p QABugs
 p Font
+p BOPAlgo
+p BOPDS
+p BOPCol
+p BOPInt
diff --git a/src/BOP/BOP.cdl b/src/BOP/BOP.cdl
deleted file mode 100755 (executable)
index 724d3a6..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
--- Created on: 2001-03-29
--- Created by: Peter KURNEV
--- Copyright (c) 2001-2012 OPEN CASCADE SAS
---
--- The content of this file is subject to the Open CASCADE Technology Public
--- License Version 6.5 (the "License"). You may not use the content of this file
--- except in compliance with the License. Please obtain a copy of the License
--- at http://www.opencascade.org and read it completely before using this file.
---
--- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
--- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
---
--- The Original Code and all software distributed under the License is
--- distributed on an "AS IS" basis, without warranty of any kind, and the
--- Initial Developer hereby disclaims all such warranties, including without
--- limitation, any warranties of merchantability, fitness for a particular
--- purpose or non-infringement. Please see the License for the specific terms
--- and conditions governing the rights and limitations under the License.
-
-
-package BOP  
-
-    ---Purpose: Contains main and auxiliary classes to provide boolean operations   
-    --          (BO)   Common,  Cut,  Fuse, Section between a couple BRep shapes. 
-
-uses   
-    Geom2dInt,
-    TopoDS, 
-    TopAbs, 
-    TopTools, 
-    TopExp, 
-    gp,  
-    TColgp,
-    ProjLib, 
-    Geom2d, 
-    Geom,  
-    TColStd, 
-    TopTools,
-    TCollection,  
-    BRepClass, 
-    BRep, 
-    BRepClass3d,
-    BooleanOperations,
-    IntTools,
-    BOPTools, 
-    BOPTColStd
-
-is 
-    ---
-    ---                     E  n  u  m  e  r  a  t  i  o  n  s            
-    --- 
-    enumeration Operation is  
-       COMMON, 
-       FUSE, 
-       CUT,  
-       CUT21,
-       SECTION, 
-       UNKNOWN
-       end Operation;  
-       
-    enumeration LoopEnum is 
-       ANYLOOP, 
-       BOUNDARY, 
-       BLOCK  
-       end LoopEnum; 
-
-    enumeration CheckStatus is
-       CheckUnknown,
-       BadType,
-       SelfIntersect,
-       TooSmallEdge,
-       NonRecoverableFace,
-       IncompatibilityOfVertex,
-       IncompatibilityOfEdge,
-       IncompatibilityOfFace
-       end CheckStatus;
-    ---
-    ---                          T  h  e    C  l  a  s  s  e  s                
-    ---   
-    
-    deferred class Builder;   
-       ---Purpose: 
-       --- Root class for performing a BO      
-       ---  
-    class WireWire;  
-       ---Purpose: 
-       --- Performs BO (Common,Cut,Fuse) for wires(edges)  
-       ---   
-    class WireShell;  
-       ---Purpose: 
-       --- Performs BO (Common,Cut,Fuse) for wire(edge)/shell(face)  
-       --- 
-    class WireSolid; 
-       ---Purpose: 
-       --- Performs BO (Common,Cut,Fuse) for wire(edge)/solid  
-       ---  
-    class WireShape; 
-       ---Purpose: 
-       --- Root  class  for  Wire/...  Biulders  
-       ---  
-    
-    class SolidSolid; 
-       ---Purpose: 
-       --- Performs BO (Common,Cut,Fuse) for solids  
-       ---
-    class ShellShell; 
-       ---Purpose: 
-       --- Performs BO (Common,Cut,Fuse) for shell/shell arguments  
-       --- 
-    class ShellSolid; 
-       ---Purpose: 
-       --- Performs BO (Common,Cut,Fuse) for shell/solid arguments  
-       ---  
-     
-    class EmptyBuilder; 
-       ---Purpose: 
-       --- Performs BO (Common,Cut,Fuse)   for shapes 
-       --- in cases when one of arguments(or both) is(are) empty
-       ---              
-    deferred class HistoryCollector;
-
-    class SolidSolidHistoryCollector;
-
-    class ShellSolidHistoryCollector;
-    
-    class WireSolidHistoryCollector;
-    
-    class SectionHistoryCollector;
-
-    class BuilderTools; 
-    ---Purpose: 
-       --- Handy  tools to help building a result 
-        ---     
-    class Section;  
-       ---Purpose: 
-       --- Performs the BO (Section) 
-       --- for the shapes where it is valid one   
-       --- 
-    class  Refiner; 
-       ---Purpose: 
-       --- Refines the result of the BO if necessary   
-       ---      
-    class ShapeSet; 
-       ---Purpose: 
-       --- Root auxiliary class for set of shapes
-        --- to build new faces from wires,new solids from shells 
-       ---
-    class WireEdgeSet;  
-       ---Purpose: 
-       --- Class for set of edges and wires to build new faces
-       ---                      
-    class ShellFaceSet; 
-       ---Purpose: 
-       --- Class for set of faces and shells to build new solids
-       --- 
-    class BlockBuilder; 
-       ---Purpose: 
-       ---  Auxiliary class to storage and operate with data of  
-        ---  connexity blocks inside  
-       ---      
-    class BlockIterator;
-       ---Purpose: 
-       ---  Auxiliary class to iterate data inside the given  
-       ---  connexity block 
-       ---     
-    class Loop;  
-       ---Purpose: 
-       ---  Auxiliary class containing data about an existing shape  
-       ---  (Shell,Wire)or a set of shapes (Faces,Edges) which are connex.
-       ---     
-    class LoopSet;  
-       ---Purpose: 
-       ---  Auxiliary class to storage  and  iterate on  Loop(s) 
-       ---  
-
-    deferred  class LoopClassifier; 
-       ---Purpose: 
-       ---  Root class to classify loops in order to build Areas 
-       ---  
-    deferred  class CompositeClassifier;  
-       ---Purpose: 
-       ---  Cclassify composite Loops, i.e, loops that can be  
-       ---  either a Shape, or a block of Elements 
-       --- 
-    class WireEdgeClassifier;   
-       ---Purpose: 
-       ---  Classify loops that consist of edges and wires
-       --- 
-    class ShellFaceClassifier;
-       ---Purpose: 
-       ---  Classify loops that consist of faces and shells
-       --- 
-    class AreaBuilder;    
-       ---Purpose: 
-       ---  Root class to provide building valid areas from        
-       ---  corresponding shape sets  
-       ---
-    class Area2dBuilder;    
-       ---Purpose: 
-       ---  Constructs areas for Faces from a WireEdgeSet        
-       ---
-    class FaceAreaBuilder;   
-       ---Purpose: 
-       ---   constructs Loops for  Faces from a WireEdgeSet        
-       ---
-    class FaceBuilder;   
-       ---Purpose: 
-       ---   construct Faces from a WireEdgeSet        
-       ---
-    class Area3dBuilder; 
-       ---Purpose: 
-       ---  Constructs areas for Faces from a WireEdgeSet    
-       ---
-    class SolidAreaBuilder; 
-       ---Purpose: 
-       ---  Constructs areas for Solids from a ShellFaceSet        
-       --- 
-    class SolidBuilder;
-       ---Purpose: 
-       ---  Constructs Solids from a ShellFaceSet        
-       --- 
-    class EdgeInfo; 
-       ---Purpose: 
-       ---  Auxiliary class to store data about edges on  a  face 
-       ---  that have common vertex             
-       --- 
-    class FaceInfo;  
-       ---Purpose: 
-       ---  Auxiliary class to store data about faces on a  shell 
-       ---  that have common edge               
-       --- 
-    class WireSplitter;   
-       ---Purpose: 
-       ---  The algorithm to split invalid (multiconnexed)   
-       ---  wires on a face onto valid  ones 
-       ---
-    class ShellSplitter; 
-       ---Purpose: 
-       ---  The algorithm to split invalid (multiconnexed)   
-       ---  shells on a solid onto valid  ones 
-       ---
-    class ConnexityBlock; 
-       ---Purpose: 
-       ---  Auxiliary class to create and  store data about a set  
-       ---  of connex shapes 
-       ---          
-    class WESCorrector;  
-       ---Purpose:   
-       ---  The algorithm to change the WES contents      
-       ---  The NewWES will contain only wires  instead of   
-       ---  wires and edges. 
-       ---
-    class SFSCorrector;   
-       ---Purpose: 
-       ---  The algorithm to change the SFS contents.
-       ---  The NewSFS will contain only shells  instead of   
-       ---  shells and faces.
-       ---
-        
-    class CorrectTolerances;  
-       ---Purpose: 
-       ---  Auxiliary class to provide valid values  for result's tolerances'     
-       ---
-    class Draw; 
-       ---Purpose: 
-       ---  Auxiliary class to display intermediate results in  Draw's windows     
-       ---  for the debugging purposes 
-       ---      
-    class SDFWESFiller; 
-       ---Purpose: 
-       ---  Fills a  wire  edges set for a couple of faces that are same domain 
-       ---   
-
-    class CheckResult;
-    class ArgumentAnalyzer;
-    ---
-    ---                          P  o  i  n  t  e  r  s                
-    ---
-    pointer PWireEdgeSet  to WireEdgeSet  from BOP;
-    pointer PShellFaceSet to ShellFaceSet from BOP;
-    pointer PBuilder to Builder from BOP;  
-
-    ---
-    ---                 I  n  s  t  a  n  t  i  a  t  i  o  n  s  
-    ---
-    class ListOfConnexityBlock instantiates  
-       List from TCollection(ConnexityBlock from BOP);  
-       
-    class ListOfLoop instantiates  
-       List from TCollection(Loop from BOP); 
-     
-    class ListOfListOfLoop instantiates  
-       List from TCollection(ListOfLoop from BOP); 
-        
-    class ListOfEdgeInfo  instantiates          
-       List from TCollection(EdgeInfo from BOP);                        
-
-    class IndexedDataMapOfVertexListEdgeInfo instantiates 
-       IndexedDataMap from TCollection(Shape          from TopoDS,
-                                       ListOfEdgeInfo from BOP,
-                                        ShapeMapHasher from TopTools); 
-    class ListOfFaceInfo  instantiates          
-       List from TCollection(FaceInfo from BOP);  
-     
-    class IndexedDataMapOfEdgeListFaceInfo instantiates 
-       IndexedDataMap from TCollection(Shape          from TopoDS,
-                                       ListOfFaceInfo from BOP,
-                                        ShapeMapHasher from TopTools);  
-    class SeqOfSeqOfShape instantiates  
-       Sequence from TCollection(SequenceOfShape from TopTools); 
-
-    
--- 
-    class SolidClassifier; 
-
-    pointer PSoClassif to SolidClassifier from BRepClass3d; 
-     
-    class IndexedDataMapOfSolidClassifier instantiates  
-       IndexedDataMap from TCollection (Shape from TopoDS,
-                                        PSoClassif from BOP,
-                                        ShapeMapHasher from TopTools);
-                                        
-    class ListOfCheckResult instantiates  
-       List from TCollection(CheckResult from BOP);
---
-                                          
-                                         
-end BOP;
-
diff --git a/src/BOP/BOP_Area2dBuilder.cdl b/src/BOP/BOP_Area2dBuilder.cdl
deleted file mode 100755 (executable)
index ea48cf4..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
--- Created on: 1995-12-21
--- Created by: Jean Yves LEBEY
--- Copyright (c) 1995-1999 Matra Datavision
--- Copyright (c) 1999-2012 OPEN CASCADE SAS
---
--- The content of this file is subject to the Open CASCADE Technology Public
--- License Version 6.5 (the "License"). You may not use the content of this file
--- except in compliance with the License. Please obtain a copy of the License
--- at http://www.opencascade.org and read it completely before using this file.
---
--- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
--- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
---
--- The Original Code and all software distributed under the License is
--- distributed on an "AS IS" basis, without warranty of any kind, and the
--- Initial Developer hereby disclaims all such warranties, including without
--- limitation, any warranties of merchantability, fitness for a particular
--- purpose or non-infringement. Please see the License for the specific terms
--- and conditions governing the rights and limitations under the License.
-
-
-class Area2dBuilder from BOP inherits AreaBuilder from BOP
-
-    ---Purpose:  
-    
-    -- The algorithm is used to construct Faces from a LoopSet,
-    -- where the Loop is the composite topological object of the boundary,
-    -- here it is a wire(s) or block(s) of edges.
-    -- The LoopSet gives an iteration on Loops.
-    -- For each Loop  it indicates if it is on the boundary (wire) or if it
-    -- results from  an interference (block of edges).
-    -- The result of the algorithm is an iteration on areas.
-    -- An area is described by a set of Loops.
-
-uses
-
-    LoopSet        from BOP,
-    LoopClassifier from BOP
-    
-is
-    Create returns Area2dBuilder;
-       ---Purpose:  
-       --- Empty  Constructor 
-       ---
-    Create(LS :out LoopSet from BOP;  
-          LC :out LoopClassifier from BOP;
-          ForceClass : Boolean from Standard = Standard_False)  
-       returns Area2dBuilder;
-       ---Purpose:  
-       --- Creates an  object to build faces on
-       --- the (wires,blocks of edge) of <LS>,  
-       --- using the classifier <LC>.
-       ---
-    InitAreaBuilder(me :out;
-                   LS :out LoopSet from BOP;  
-                   LC :out LoopClassifier from BOP;
-                   ForceClass : Boolean = Standard_False) 
-       is redefined;
-       ---Purpose:  
-       --- Initializes the object to find the areas of
-       --- the shapes described by <LS>, 
-       --- using the classifier <LC>.
-       ---
-    
-end Area2dBuilder;
diff --git a/src/BOP/BOP_Area2dBuilder.cxx b/src/BOP/BOP_Area2dBuilder.cxx
deleted file mode 100755 (executable)
index d61c2bf..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-// Created on: 1995-12-21
-// Created by: Jean Yves LEBEY
-// Copyright (c) 1995-1999 Matra Datavision
-// Copyright (c) 1999-2012 OPEN CASCADE SAS
-//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
-//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
-//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
-//modified by NIZNHY-PKV Tue Apr  3 15:50:23 2001
-
-#include <BOP_Area2dBuilder.ixx>
-
-#include <BOP_Loop.hxx>
-#include <BOP_ListIteratorOfListOfLoop.hxx>
-
-//=======================================================================
-//function : BOP_Area2dBuilder::BOP_Area2dBuilder
-//purpose  : 
-//=======================================================================
-BOP_Area2dBuilder::BOP_Area2dBuilder()
-{
-}
-
-//=======================================================================
-//function : BOP_Area2dBuilder::BOP_Area2dBuilder
-//purpose  : 
-//=======================================================================
-  BOP_Area2dBuilder::BOP_Area2dBuilder(BOP_LoopSet& LS, 
-                                      BOP_LoopClassifier& LC,
-                                      const Standard_Boolean ForceClass)
-{
-  InitAreaBuilder(LS,LC,ForceClass);
-}
-
-//=======================================================================
-//function : InitAreaBuilder
-//purpose  : 
-//=======================================================================
-  void BOP_Area2dBuilder::InitAreaBuilder(BOP_LoopSet&        LS,
-                                         BOP_LoopClassifier& LC,
-                                         const Standard_Boolean ForceClass)
-{
-  TopAbs_State     state;
-  Standard_Boolean Loopinside;
-  Standard_Boolean loopoutside;
-  
-  BOP_ListIteratorOfListOfListOfLoop AreaIter;
-  BOP_ListIteratorOfListOfLoop       LoopIter;
-  // boundaryloops : list of boundary loops out of the areas.
-  BOP_ListOfLoop                     boundaryloops; 
-  
-  myArea.Clear();          // Clear the list of Area to be built
-  
-  for (LS.InitLoop(); LS.MoreLoop(); LS.NextLoop()) {
-    
-    // process a new loop : L is the new current Loop
-    const Handle(BOP_Loop)& L = LS.Loop();
-    Standard_Boolean boundaryL = L->IsShape();
-    //
-    //const TopoDS_Shape& aSL=L->Shape();
-    //
-    // L = shape et ForceClass  : on traite L comme un block
-    // L = shape et !ForceClass : on traite L comme un pur shape
-    // L = !shape               : on traite L comme un block
-    Standard_Boolean traitercommeblock = (!boundaryL) || ForceClass;
-    if ( !traitercommeblock ) {
-      // the loop L is a boundary loop : 
-      // - try to insert it in an existing area, such as L is inside all 
-      //   the block loops. Only block loops of the area are compared. 
-      // - if L could not be inserted, store it in list of boundary loops.
-      Loopinside = Standard_False; 
-      AreaIter.Initialize(myArea);
-      for (; AreaIter.More(); AreaIter.Next()) {
-       BOP_ListOfLoop& aArea = AreaIter.Value();
-       if ( aArea.IsEmpty() ) {
-         continue;
-       }       
-       state = CompareLoopWithListOfLoop(LC,L,aArea,BOP_BLOCK );
-       if (state == TopAbs_UNKNOWN){
-         Atomize(state,TopAbs_IN);
-       }       
-       Loopinside = ( state == TopAbs_IN);
-       if ( Loopinside ) {
-         break;
-       }
-      } // end of Area scan
-
-      if ( Loopinside ) {
-       BOP_ListOfLoop& aArea = AreaIter.Value();
-       ADD_Loop_TO_LISTOFLoop(L, aArea);
-      }
-      else if ( ! Loopinside ) {
-       ADD_Loop_TO_LISTOFLoop(L, boundaryloops);
-      }
-    } // end of boundary loop
-    
-    else { 
-      // the loop L is a block loop
-      // if L is IN theArea :
-      //   - stop area scan, insert L in theArea.
-      //   - remove from the area all the loops outside L
-      //   - make a new area with them, unless they are all boundary
-      //   - if they are all boundary put them back in boundaryLoops
-      // else :
-      //   - create a new area with L.
-      //   - insert boundary loops that are IN the new area
-      //     (and remove them from 'boundaryloops')
-      //
-      Standard_Integer aNbAreas, aNbLoops;
-      Loopinside = Standard_False;
-      //
-      aNbAreas=myArea.Extent();
-      if (aNbAreas) {
-       AreaIter.Initialize(myArea);
-       for (; AreaIter.More(); AreaIter.Next()) {
-         BOP_ListOfLoop& aArea = AreaIter.Value();
-         aNbLoops=aArea.Extent();
-         if (!aNbLoops){
-           continue;
-         }
-         //
-         state = CompareLoopWithListOfLoop(LC, L, aArea, BOP_ANYLOOP);
-         //
-         if (state == TopAbs_UNKNOWN){
-           Atomize(state,TopAbs_IN);
-         }
-         //
-         Loopinside = (state==TopAbs_IN);
-         if ( Loopinside ){
-           break;
-         }
-       } // end of Area scan
-      }
-      //
-      if ( Loopinside) {
-       BOP_ListOfLoop& aArea = AreaIter.Value();
-       Standard_Boolean allShape = Standard_True;
-       BOP_ListOfLoop removedLoops;
-       LoopIter.Initialize(aArea);
-       while (LoopIter.More()) {
-         const Handle(BOP_Loop)& curL = LoopIter.Value();
-         state = LC.Compare(curL, L);
-         if (state == TopAbs_UNKNOWN) {
-           Atomize(state,TopAbs_IN); // not OUT
-         }       
-         //
-         loopoutside = ( state == TopAbs_OUT );
-         //
-         if ( loopoutside ) {
-           // remove the loop from the area
-           ADD_Loop_TO_LISTOFLoop(curL, removedLoops);
-           
-           allShape = allShape && curL->IsShape();
-           REM_Loop_FROM_LISTOFLoop(LoopIter, aArea);
-         }
-         else {
-           LoopIter.Next();
-         }
-       }// while (LoopIter.More()) {
-       //
-       // insert the loop in the area
-       ADD_Loop_TO_LISTOFLoop(L, aArea);
-       if ( ! removedLoops.IsEmpty() ) {
-         if ( allShape ) {
-           ADD_LISTOFLoop_TO_LISTOFLoop (removedLoops,boundaryloops);
-         }
-         else {
-           // make a new area with the removed loops
-            BOP_ListOfLoop thelistofloop;
-           myArea.Append(thelistofloop);
-           ADD_LISTOFLoop_TO_LISTOFLoop(removedLoops, myArea.Last());
-         }
-       }
-      } // Loopinside == True
-      
-      else {
-        Standard_Integer ashapeinside,ablockinside;
-       BOP_ListOfLoop thelistofloop1;
-       myArea.Append(thelistofloop1);
-       BOP_ListOfLoop& newArea0 = myArea.Last();
-       ADD_Loop_TO_LISTOFLoop(L, newArea0);
-       
-        LoopIter.Initialize(boundaryloops);
-        while ( LoopIter.More() ) {
-          ashapeinside = ablockinside = Standard_False;
-         const Handle(BOP_Loop)& lb = LoopIter.Value();
-         state = LC.Compare(lb,L);
-         if (state == TopAbs_UNKNOWN){
-           Atomize(state,TopAbs_IN);
-         }          
-         ashapeinside = (state == TopAbs_IN);
-          if (ashapeinside) {
-           state = LC.Compare(L,lb);
-           if (state == TopAbs_UNKNOWN){
-             Atomize(state,TopAbs_IN);
-           }       
-           ablockinside = (state == TopAbs_IN);
-         }
-         if ( ashapeinside && ablockinside ) {
-           const Handle(BOP_Loop)& curL = LoopIter.Value();
-           ADD_Loop_TO_LISTOFLoop(curL, newArea0);
-
-           REM_Loop_FROM_LISTOFLoop(LoopIter,boundaryloops);
-         }
-          else { 
-           LoopIter.Next();
-         }
-       } // end of boundaryloops scan
-      } // Loopinside == False
-    } // end of block loop
-  } // end of LoopSet LS scan
-  
-  if ( ! boundaryloops.IsEmpty() ) {
-    if ( myArea.IsEmpty() )  {
-      BOP_ListOfLoop newArea3;
-      newArea3.Append(boundaryloops);
-      myArea.Append(newArea3);
-    }
-  }
-
-  InitArea();
-}
diff --git a/src/BOP/BOP_Area3dBuilder.cdl b/src/BOP/BOP_Area3dBuilder.cdl
deleted file mode 100755 (executable)
index 0e736e2..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
--- Created on: 2001-06-25
--- Created by: Michael KLOKOV
--- Copyright (c) 2001-2012 OPEN CASCADE SAS
---
--- The content of this file is subject to the Open CASCADE Technology Public
--- License Version 6.5 (the "License"). You may not use the content of this file
--- except in compliance with the License. Please obtain a copy of the License
--- at http://www.opencascade.org and read it completely before using this file.
---
--- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
--- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
---
--- The Original Code and all software distributed under the License is
--- distributed on an "AS IS" basis, without warranty of any kind, and the
--- Initial Developer hereby disclaims all such warranties, including without
--- limitation, any warranties of merchantability, fitness for a particular
--- purpose or non-infringement. Please see the License for the specific terms
--- and conditions governing the rights and limitations under the License.
-
-
-class Area3dBuilder from BOP inherits AreaBuilder from BOP
-
-    ---Purpose: 
-       
-    -- The algorithm is used to construct Solids from a LoopSet,
-    -- where the Loop is the composite topological object of the boundary,
-    -- here it is a Shell(s) or block(s) of Faces.
-    -- The LoopSet gives an iteration on Loops.
-    -- For each Loop  it indicates if it is on the boundary (shell) or if it
-    -- results from  an interference (block of faces).
-    -- The result of the algorithm is an iteration on areas.
-    -- An area is described by a set of Loops. 
-    
-uses
-    LoopSet from BOP,
-    LoopClassifier from BOP
-
-is
-
-    Create returns Area3dBuilder from BOP;
-       ---Purpose:  
-       --- Empty  Constructor 
-       ---
-    Create(LS:out LoopSet from BOP;
-          LC:out LoopClassifier from BOP;
-          ForceClass: Boolean from Standard = Standard_False)
-       returns Area3dBuilder from BOP;
-       ---Purpose:  
-       --- Creates an  object to build solids on
-       --- the (shells,  blocks of faces) of <LS>,  
-       --- using the classifier <LC>. 
-       ---
-    
-    InitAreaBuilder(me:                in out;
-                   LS:out LoopSet from BOP;
-                   LC:out LoopClassifier from BOP;
-                   ForceClass: Boolean from Standard)
-       is redefined;
-       ---Purpose:  
-       --- Initialize the object to find the areas of
-       --- the shapes described by <LS>, 
-       --- using the classifier <LC>. 
-       ---
-    
-end Area3dBuilder from BOP;
diff --git a/src/BOP/BOP_Area3dBuilder.cxx b/src/BOP/BOP_Area3dBuilder.cxx
deleted file mode 100755 (executable)
index f115982..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-// Copyright (c) 1999-2012 OPEN CASCADE SAS
-//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
-//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
-//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
-#include <BOP_Area3dBuilder.ixx>
-
-#include <BOP_Loop.hxx>
-
-// ==================================================================================
-// function: BOP_Area3dBuilder::BOP_Area3dBuilder
-// purpose: 
-// ==================================================================================
-BOP_Area3dBuilder::BOP_Area3dBuilder()
-{
-}
-
-// ==================================================================================
-// function: BOP_Area3dBuilder::BOP_Area3dBuilder
-// purpose: 
-// ==================================================================================
-  BOP_Area3dBuilder::BOP_Area3dBuilder(BOP_LoopSet&           theLS,
-                                      BOP_LoopClassifier&    theLC,
-                                      const Standard_Boolean theForceClassFlag)
-{
-  InitAreaBuilder(theLS, theLC, theForceClassFlag);
-}
-
-// ==================================================================================
-// function: InitAreaBuilder
-// purpose: 
-// ==================================================================================
-  void BOP_Area3dBuilder::InitAreaBuilder(BOP_LoopSet&           theLS,
-                                         BOP_LoopClassifier&    theLC,
-                                         const Standard_Boolean theForceClassFlag) 
-{
-  TopAbs_State     state;
-  Standard_Boolean Loopinside;
-  Standard_Boolean loopoutside;
-  
-  BOP_ListIteratorOfListOfListOfLoop AreaIter;
-  BOP_ListIteratorOfListOfLoop       LoopIter;
-  // boundaryloops : list of boundary loops out of the areas.
-  BOP_ListOfLoop                     boundaryloops; 
-  
-  myArea.Clear();          // Clear the list of Area to be built
-  
-  for (theLS.InitLoop(); theLS.MoreLoop(); theLS.NextLoop()) {
-    
-    // process a new loop : L is the new current Loop
-    const Handle(BOP_Loop)& L = theLS.Loop();
-    Standard_Boolean boundaryL = L->IsShape();
-    
-    // L = shape et theForceClassFlag  : on traite L comme un block
-    // L = shape et !theForceClassFlag : on traite L comme un pur shape
-    // L = !shape               : on traite L comme un block
-    Standard_Boolean traitercommeblock = (!boundaryL) || theForceClassFlag;
-    if ( ! traitercommeblock ) {
-
-      // the loop L is a boundary loop : 
-      // - try to insert it in an existing area, such as L is inside all 
-      //   the block loops. Only block loops of the area are compared. 
-      // - if L could not be inserted, store it in list of boundary loops.
-
-      Loopinside = Standard_False; 
-      for (AreaIter.Initialize(myArea); AreaIter.More(); AreaIter.Next()) {
-       BOP_ListOfLoop& aArea = AreaIter.Value();
-       if ( aArea.IsEmpty() ) continue;
-       state = CompareLoopWithListOfLoop(theLC,L,aArea,BOP_BLOCK );
-       if (state == TopAbs_UNKNOWN) Atomize(state,TopAbs_IN);
-       Loopinside = ( state == TopAbs_IN);
-       if ( Loopinside ) break;
-      } // end of Area scan
-
-      if ( Loopinside ) {
-       BOP_ListOfLoop& aArea = AreaIter.Value();
-       ADD_Loop_TO_LISTOFLoop(L,aArea);
-      }
-      else if ( ! Loopinside ) {
-       ADD_Loop_TO_LISTOFLoop(L, boundaryloops);
-      }
-
-    } // end of boundary loop
-    
-    else { 
-      // the loop L is a block loop
-      // if L is IN theArea :
-      //   - stop area scan, insert L in theArea.
-      //   - remove from the area all the loops outside L
-      //   - make a new area with them, unless they are all boundary
-      //   - if they are all boundary put them back in boundaryLoops
-      // else :
-      //   - create a new area with L.
-      //   - insert boundary loops that are IN the new area
-      //     (and remove them from 'boundaryloops')
-      
-      Loopinside = Standard_False;
-      for (AreaIter.Initialize(myArea); AreaIter.More(); AreaIter.Next() ) {
-       BOP_ListOfLoop& aArea = AreaIter.Value();
-       if ( aArea.IsEmpty() ) continue;
-       state = CompareLoopWithListOfLoop(theLC,L,aArea,BOP_ANYLOOP);
-       if (state == TopAbs_UNKNOWN) Atomize(state,TopAbs_IN);
-       Loopinside = (state == TopAbs_IN);
-       if ( Loopinside ) break;
-      } // end of Area scan
-      
-      if ( Loopinside) {
-       BOP_ListOfLoop& aArea = AreaIter.Value();
-       Standard_Boolean allShape = Standard_True;
-       BOP_ListOfLoop removedLoops;
-       LoopIter.Initialize(aArea);
-       while (LoopIter.More()) {
-         const Handle(BOP_Loop)& LLI1 = LoopIter.Value();
-         state = theLC.Compare(LLI1,L);
-         if (state == TopAbs_UNKNOWN) Atomize(state,TopAbs_IN); // not OUT
-         loopoutside = ( state == TopAbs_OUT );
-         if ( loopoutside ) {
-           const Handle(BOP_Loop)& curL = LoopIter.Value();
-           // remove the loop from the area
-           ADD_Loop_TO_LISTOFLoop
-             (curL,removedLoops);
-           
-           allShape = allShape && curL->IsShape();
-           REM_Loop_FROM_LISTOFLoop
-             (LoopIter, AreaIter.Value());
-         }
-         else {
-           LoopIter.Next();
-         }
-       }
-       // insert the loop in the area
-       ADD_Loop_TO_LISTOFLoop(L,aArea);
-       if ( ! removedLoops.IsEmpty() ) {
-         if ( allShape ) {
-           ADD_LISTOFLoop_TO_LISTOFLoop(removedLoops, boundaryloops);
-         }
-         else {
-           // make a new area with the removed loops
-            BOP_ListOfLoop thelistofloop;
-           myArea.Append(thelistofloop);
-           ADD_LISTOFLoop_TO_LISTOFLoop(removedLoops, myArea.Last());
-         }
-       }
-      } // Loopinside == True
-      
-      else {
-        Standard_Integer ashapeinside,ablockinside;
-       BOP_ListOfLoop thelistofloop1;
-       myArea.Append(thelistofloop1);
-       BOP_ListOfLoop& newArea0 = myArea.Last();
-       ADD_Loop_TO_LISTOFLoop(L, newArea0);
-       
-        LoopIter.Initialize(boundaryloops);
-        while ( LoopIter.More() ) {
-          ashapeinside = ablockinside = Standard_False;
-         const Handle(BOP_Loop)& LLI2 = LoopIter.Value();
-         state = theLC.Compare(LLI2,L);
-         if (state == TopAbs_UNKNOWN) Atomize(state,TopAbs_IN);
-          ashapeinside = (state == TopAbs_IN);
-          if (ashapeinside) {
-           const Handle(BOP_Loop)& LLI3 = LoopIter.Value();
-           state = theLC.Compare(L,LLI3);
-           if (state == TopAbs_UNKNOWN) Atomize(state,TopAbs_IN);
-           ablockinside = (state == TopAbs_IN);
-         }
-         if ( ashapeinside && ablockinside ) {
-           const Handle(BOP_Loop)& curL = LoopIter.Value();
-           ADD_Loop_TO_LISTOFLoop(curL, newArea0);
-
-           REM_Loop_FROM_LISTOFLoop(LoopIter, boundaryloops);
-         }
-          else { 
-           LoopIter.Next();
-         }
-       } // end of boundaryloops scan
-      } // Loopinside == False
-    } // end of block loop
-  } // end of LoopSet theLS scan
-  
-  InitArea();
-}
-
diff --git a/src/BOP/BOP_AreaBuilder.cdl b/src/BOP/BOP_AreaBuilder.cdl
deleted file mode 100755 (executable)
index a86d548..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
--- Created on: 1995-12-21
--- Created by: Jean Yves LEBEY
--- Copyright (c) 1995-1999 Matra Datavision
--- Copyright (c) 1999-2012 OPEN CASCADE SAS
---
--- The content of this file is subject to the Open CASCADE Technology Public
--- License Version 6.5 (the "License"). You may not use the content of this file
--- except in compliance with the License. Please obtain a copy of the License
--- at http://www.opencascade.org and read it completely before using this file.
---
--- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
--- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
---
--- The Original Code and all software distributed under the License is
--- distributed on an "AS IS" basis, without warranty of any kind, and the
--- Initial Developer hereby disclaims all such warranties, including without
--- limitation, any warranties of merchantability, fitness for a particular
--- purpose or non-infringement. Please see the License for the specific terms
--- and conditions governing the rights and limitations under the License.
-
-
-class AreaBuilder from BOP
-
-    ---Purpose:  
-     
-    --  The Root class for the algorithms that are used  to   
-     
-    --      Reconstruct complex  topological  
-    --  objects as  Faces or Solids.
-    --      Loop is  the  composite topological object of
-    --  the boundary. Wire for a Face. Shell for a Solid.
-    --      LoopSet is a  tool describing the object  to
-    --  build.  It gives an iteration  on Loops.  For each
-    --  Loop it tells if it is on the boundary or if it is
-    --  an interference.
-    --      LoopClassifier  is an algorithm  used to test
-    --  if a Loop is inside  another  Loop.
-    --  The  result of the  reconstruction is an iteration
-    --  on the reconstructed areas.  An  area is described
-    --  by a set of Loops.
-    --      A AreaBuilder is built with :
-    --    - a LoopSet describing the object to reconstruct.
-    --    - a LoopClassifier providing the classification algorithm.
-
-uses
-
-    State from TopAbs,
-
-    Loop                     from BOP,
-    ListOfLoop               from BOP,
-    ListIteratorOfListOfLoop from BOP,
-    ListOfListOfLoop         from BOP,
-    LoopSet                  from BOP,
-    LoopClassifier           from BOP,
-    LoopEnum                 from BOP, 
-    ListIteratorOfListOfListOfLoop from BOP
-    
-is
-
-    Create  
-       returns AreaBuilder;
-       ---Purpose:  
-       --- Empty  Constructor 
-       ---
-    Create(LS :out LoopSet from BOP;  
-          LC :out LoopClassifier from BOP;
-          ForceClass : Boolean = Standard_False)  
-       returns AreaBuilder;
-       ---Purpose:  
-       --- Creates the objectr to build the areas on
-       --- the shapes described by <LS> using the classifier <LC>.
-       ---
-    Delete(me:out) is virtual;
-       ---C++: alias "Standard_EXPORT virtual ~BOP_AreaBuilder(){Delete() ; }"
-       ---Purpose:  
-       --- Destructor
-       ---
-    InitAreaBuilder(me :out;
-                   LS :out LoopSet from BOP;  
-                   LC :out LoopClassifier;
-                   ForceClass : Boolean from Standard = Standard_False) 
-       is virtual;
-       ---Purpose:  
-       --- Sets a AreaBuilder to find the areas on
-       --- the shapes described by <LS> using the classifier <LC>.
-       ---
-    CompareLoopWithListOfLoop(me;
-                             LC  : out LoopClassifier from BOP;
-                             L   : Loop from BOP;
-                             LOL : ListOfLoop from BOP;
-                             aWhat  : LoopEnum from BOP) 
-       returns State from TopAbs  
-       is static protected;
-       ---Purpose:  
-       --- Compare position of the Loop <L> with the Area <LOL>
-       --- using the Loop Classifier <LC>.
-       ---       According to <aWhat>, Loops of <LOL> are selected or not
-       ---       during <LOL> exploration. 
-       ---
-       -- Result : TopAbs_OUT     if <LOL> is empty
-       ---      TopAbs_UNKNOWN if position undefined
-       ---      TopAbs_IN      if <L> is inside all the selected Loops of <LOL>
-       ---      TopAbs_OUT     if <L> is outside one of the selected Loops of <LOL>
-       ---      TopAbs_ON      if <L> is on one of the selected Loops of <LOL> 
-       ---
-       ---
-
-    --- Iteration on Areas   
-    --
-    InitArea(me:out)  
-       returns Integer from Standard is static;
-       ---Purpose:  
-       --- Initialize iteration on areas.
-       ---
-    MoreArea(me)  
-       returns Boolean from Standard is static;
-     
-    NextArea(me:out)  
-       is static;
-
-    -- 
-    --  Iteration on Loops inside the Area   
-    --
-    InitLoop(me:out)  
-       returns Integer from Standard is static;
-       ---Purpose:  
-       --- Initialize iteration on loops of current Area. 
-       ---
-    MoreLoop(me)  
-       returns Boolean from Standard is static;
-     
-    NextLoop(me:out)  
-       is static;
-     
-    Loop(me)  
-       returns Loop from BOP is static; 
-       ---C++: return const&
-       ---Purpose:  
-       --- Returns the current Loop in the current area.
-       ---
-    ---
-    --- 
-    ---  Methods that are not for public usage 
-    ---             
-    ADD_Loop_TO_LISTOFLoop  (me;  
-                            L  : Loop from BOP;
-                            LOL: out ListOfLoop from BOP)  
-       is virtual;
-       ---Purpose: 
-       --- Internal 
-       ---
-    REM_Loop_FROM_LISTOFLoop(me;  
-                            ITLOL: out ListIteratorOfListOfLoop from BOP; 
-                            LOL  : out ListOfLoop from BOP)
-        is virtual;
-       ---Purpose: 
-       --- Internal 
-       ---
-    ADD_LISTOFLoop_TO_LISTOFLoop(me;  
-                                LOL1 : out ListOfLoop from BOP;
-                                LOL2 : out ListOfLoop from BOP)
-       is virtual;
-       ---Purpose: 
-       --- Internal 
-       ---
-    Atomize(me; 
-           state : in out State from TopAbs;  
-           newstate : State from TopAbs)
-       is static protected;
-       ---Purpose: 
-       --- Internal 
-       ---
-fields
-
-    myArea         : ListOfListOfLoop               from BOP is protected;
-    myAreaIterator : ListIteratorOfListOfListOfLoop from BOP is protected;
-    myLoopIterator : ListIteratorOfListOfLoop       from BOP is protected;
-    myUNKNOWNRaise : Boolean  from Standard is protected;
-    
-end AreaBuilder;
-
diff --git a/src/BOP/BOP_AreaBuilder.cxx b/src/BOP/BOP_AreaBuilder.cxx
deleted file mode 100755 (executable)
index 7dc5873..0000000
+++ /dev/null
@@ -1,408 +0,0 @@
-// Created on: 1995-12-21
-// Created by: Jean Yves LEBEY
-// Copyright (c) 1995-1999 Matra Datavision
-// Copyright (c) 1999-2012 OPEN CASCADE SAS
-//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
-//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
-//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
-
-// " Voyager, c'est bien utile, ca fait travailler l'imagination.
-//   Tout le reste n'est que deceptions et fatigues. Notre voyage 
-//   a nous est entierement imaginaire. Voila sa force. "
-//                         Celine
-//                         Voyage au bout de la nuit
-
-#include <BOP_AreaBuilder.ixx>
-
-#include <Standard_DomainError.hxx>
-#include <TopAbs.hxx>
-
-//=======================================================================
-//function : BOP_AreaBuilder::BOP_AreaBuilder
-//purpose  : 
-//=======================================================================
-BOP_AreaBuilder::BOP_AreaBuilder() 
-:
-  myUNKNOWNRaise(Standard_False) 
-{
-}
-
-//=======================================================================
-//function : TopOpeBRepBuild_AreaBuilder
-//purpose  : 
-//=======================================================================
-  BOP_AreaBuilder::BOP_AreaBuilder (BOP_LoopSet&        LS,
-                                   BOP_LoopClassifier& LC,
-                                   const Standard_Boolean ForceClass)
-:
-  myUNKNOWNRaise(Standard_False) 
-{
-  InitAreaBuilder(LS, LC, ForceClass);
-}
-//=======================================================================
-//function : Delete
-//purpose  : 
-//=======================================================================
-  void BOP_AreaBuilder::Delete()
-{}
-
-//=======================================================================
-//function : CompareLoopWithListOfLoop
-//purpose  : Compare position of the Loop <L> with the Area <LOL>
-//           using the Loop Classifier <LC>.
-//           According to <whattotest>, Loops of <LOL> are selected or not
-//           during <LOL> exploration.
-//result   : TopAbs_OUT if <LOL> is empty
-//           TopAbs_UNKNOWN if position undefined
-//           TopAbs_IN  if <L> is inside all the selected Loops of <LOL>
-//           TopAbs_OUT if <L> is outside one of the selected Loops of <LOL>
-//           TopAbs_ON  if <L> is on one of the selected Loops of <LOL>
-//=======================================================================
-  TopAbs_State BOP_AreaBuilder::CompareLoopWithListOfLoop (BOP_LoopClassifier &LC,
-                                                          const Handle(BOP_Loop)& L,
-                                                          const BOP_ListOfLoop &LOL,
-                                                          const BOP_LoopEnum   what) const
-{
-  TopAbs_State                 state = TopAbs_UNKNOWN;
-  Standard_Boolean             totest; // L must or not be tested
-  BOP_ListIteratorOfListOfLoop LoopIter;  
-  
-  if ( LOL.IsEmpty() ) {
-    return TopAbs_OUT;
-  }
-
-  LoopIter.Initialize(LOL);
-  for (; LoopIter.More(); LoopIter.Next() ) {
-    const Handle(BOP_Loop)& curL = LoopIter.Value();
-    switch ( what ) { 
-    case BOP_ANYLOOP  : 
-      totest = Standard_True;
-      break;
-    case BOP_BOUNDARY : 
-      totest =  curL->IsShape();
-      break;
-    case BOP_BLOCK    : 
-      totest = !curL->IsShape();
-      break;
-    default:
-      totest = Standard_False;
-      break;
-    }
-    if ( totest ) {
-      state = LC.Compare(L,curL);
-      if (state == TopAbs_OUT) 
-       // <L> is out of at least one Loop 
-       //of <LOL> : stop to explore
-       break;  
-    }
-  }
-  return state;
-}
-
-//=======================================================================
-//function : Atomize
-//purpose  : 
-//=======================================================================
-  void BOP_AreaBuilder::Atomize(TopAbs_State& state, 
-                               const TopAbs_State newstate) const
-{
-  if (myUNKNOWNRaise) {
-    Standard_DomainError_Raise_if((state == TopAbs_UNKNOWN),
-                                 "AreaBuilder : Position Unknown");
-  }
-  else {
-    state = newstate;
-  }
-}
-
-
-//=======================================================================
-//function : InitAreaBuilder
-//purpose  : 
-//=======================================================================
-  void BOP_AreaBuilder::InitAreaBuilder(BOP_LoopSet& LS,
-                                       BOP_LoopClassifier& LC,
-                                       const Standard_Boolean ForceClass)
-{
-  TopAbs_State     state;
-  Standard_Boolean Loopinside;
-  Standard_Boolean loopoutside;
-  
-  BOP_ListIteratorOfListOfListOfLoop AreaIter;
-  BOP_ListIteratorOfListOfLoop       LoopIter;
-  // boundaryloops : list of boundary loops out of the areas.
-  BOP_ListOfLoop                     boundaryloops; 
-  
-  myArea.Clear();          // Clear the list of Area to be built
-  
-  for (LS.InitLoop(); LS.MoreLoop(); LS.NextLoop()) {
-    
-    // process a new loop : L is the new current Loop
-    const Handle(BOP_Loop)& L = LS.Loop();
-    Standard_Boolean boundaryL = L->IsShape();
-    
-    // L = Shape et ForceClass  : on traite L comme un block
-    // L = Shape et !ForceClass : on traite L comme un pur Shape
-    // L = !Shape               : on traite L comme un block
-    Standard_Boolean traitercommeblock = (!boundaryL) || ForceClass;
-    if ( ! traitercommeblock ) {
-
-      // the loop L is a boundary loop : 
-      // - try to insert it in an existing area, such as L is inside all 
-      //   the block loops. Only block loops of the area are compared. 
-      // - if L could not be inserted, store it in list of boundary loops.
-
-      Loopinside = Standard_False; 
-      for (AreaIter.Initialize(myArea); AreaIter.More(); AreaIter.Next()) {
-       BOP_ListOfLoop& aArea = AreaIter.Value();
-       if ( aArea.IsEmpty() ) continue;
-       state = CompareLoopWithListOfLoop(LC,L,aArea,BOP_BLOCK );
-       if (state == TopAbs_UNKNOWN) {
-         Atomize(state,TopAbs_IN);
-       }       
-       Loopinside = ( state == TopAbs_IN);
-       if ( Loopinside ) {
-         break;
-       }
-      } // end of Area scan
-
-      if ( Loopinside ) {
-       BOP_ListOfLoop& aArea = AreaIter.Value();
-       ADD_Loop_TO_LISTOFLoop(L,aArea);
-      }
-      else if ( ! Loopinside ) {
-       ADD_Loop_TO_LISTOFLoop(L,boundaryloops);
-      }
-    } // end of boundary loop
-    
-    else { 
-      // the loop L is a block loop
-      // if L is IN theArea :
-      //   - stop area scan, insert L in theArea.
-      //   - remove from the area all the loops outside L
-      //   - make a new area with them, unless they are all boundary
-      //   - if they are all boundary put them back in boundaryLoops
-      // else :
-      //   - create a new area with L.
-      //   - insert boundary loops that are IN the new area
-      //     (and remove them from 'boundaryloops')
-      
-      Loopinside = Standard_False;
-
-      for (AreaIter.Initialize(myArea); AreaIter.More(); AreaIter.Next() ) {
-       BOP_ListOfLoop& aArea = AreaIter.Value();
-       if ( aArea.IsEmpty() ) {
-         continue;
-       }       
-       state = CompareLoopWithListOfLoop(LC,L,aArea,BOP_ANYLOOP);
-       if (state == TopAbs_UNKNOWN) Atomize(state,TopAbs_IN);
-       Loopinside = (state == TopAbs_IN);
-       if ( Loopinside ) {
-         break;
-       }
-      } // end of Area scan
-      
-      if ( Loopinside) {
-       BOP_ListOfLoop& aArea = AreaIter.Value();
-       Standard_Boolean allShape = Standard_True;
-       BOP_ListOfLoop removedLoops;
-       
-       LoopIter.Initialize(aArea);
-       while (LoopIter.More()) {
-         state = LC.Compare(LoopIter.Value(),L);
-         if (state == TopAbs_UNKNOWN){
-           Atomize(state,TopAbs_IN); // not OUT
-         }
-         
-         loopoutside = ( state == TopAbs_OUT );
-         
-         if ( loopoutside ) {
-           const Handle(BOP_Loop)& curL = LoopIter.Value();
-           // remove the loop from the area
-           ADD_Loop_TO_LISTOFLoop (curL,removedLoops);
-           
-           allShape = allShape && curL->IsShape();
-           REM_Loop_FROM_LISTOFLoop(LoopIter,AreaIter.Value());
-         }
-         else {
-           LoopIter.Next();
-         }
-       }
-       // insert the loop in the area
-       ADD_Loop_TO_LISTOFLoop(L,aArea);
-       if ( ! removedLoops.IsEmpty() ) {
-         if ( allShape ) {
-           ADD_LISTOFLoop_TO_LISTOFLoop(removedLoops,boundaryloops);
-         }
-         else {
-           // make a new area with the removed loops
-            BOP_ListOfLoop thelistofloop;
-           myArea.Append(thelistofloop);
-           ADD_LISTOFLoop_TO_LISTOFLoop (removedLoops,myArea.Last());
-         }
-       }
-      } // Loopinside == True
-      
-      else {
-        Standard_Integer ashapeinside,ablockinside;
-       BOP_ListOfLoop thelistofloop1;
-       myArea.Append(thelistofloop1);
-       BOP_ListOfLoop& newArea0 = myArea.Last();
-       ADD_Loop_TO_LISTOFLoop(L, newArea0);
-       
-        LoopIter.Initialize(boundaryloops);
-        while ( LoopIter.More() ) {
-          ashapeinside = ablockinside = Standard_False;
-         state = LC.Compare(LoopIter.Value(),L);
-         if (state == TopAbs_UNKNOWN) {
-           Atomize(state,TopAbs_IN);
-          }
-        
-         ashapeinside = (state == TopAbs_IN);
-          if (ashapeinside) {
-           state = LC.Compare(L,LoopIter.Value());
-           if (state == TopAbs_UNKNOWN){
-             Atomize(state,TopAbs_IN);
-           }       
-           ablockinside = (state == TopAbs_IN);
-         }
-
-         if ( ashapeinside && ablockinside ) {
-           const Handle(BOP_Loop)& curL = LoopIter.Value();
-           ADD_Loop_TO_LISTOFLoop(curL, newArea0);
-
-           REM_Loop_FROM_LISTOFLoop(LoopIter,boundaryloops);
-         }
-          else { 
-           LoopIter.Next();
-         }
-       } // end of boundaryloops scan
-      } // Loopinside == False
-    } // end of block loop
-  } // end of LoopSet LS scan
-  
-  InitArea();
-}
-
-//=======================================================================
-//function : InitArea
-//purpose  : 
-//=======================================================================
-  Standard_Integer BOP_AreaBuilder::InitArea()
-{
-  myAreaIterator.Initialize(myArea);
-  InitLoop();
-  Standard_Integer n = myArea.Extent();
-  return n;
-}
-
-//=======================================================================
-//function : MoreArea
-//purpose  : 
-//=======================================================================
-  Standard_Boolean BOP_AreaBuilder::MoreArea() const
-{
-  Standard_Boolean b = myAreaIterator.More();
-  return b;
-}
-
-//=======================================================================
-//Function : NextArea
-//Purpose  : 
-//=======================================================================
-  void BOP_AreaBuilder::NextArea()
-{
-  myAreaIterator.Next();
-  InitLoop();
-}
-
-//=======================================================================
-//function : InitLoop
-//purpose  : 
-//=======================================================================
-  Standard_Integer BOP_AreaBuilder::InitLoop()
-{
-  Standard_Integer n = 0;
-  if (myAreaIterator.More()) {
-    const BOP_ListOfLoop& LAL = myAreaIterator.Value();
-    myLoopIterator.Initialize(LAL);
-    n = LAL.Extent();
-  }
-  else { // Create an empty ListIteratorOfListOfLoop
-    myLoopIterator = BOP_ListIteratorOfListOfLoop();  
-  }
-  return n;
-}
-
-//=======================================================================
-//function : MoreLoop
-//purpose  : 
-//=======================================================================
-  Standard_Boolean BOP_AreaBuilder::MoreLoop() const
-{
-  Standard_Boolean b = myLoopIterator.More();
-  return b;
-}
-
-//=======================================================================
-//function : NextLoop
-//purpose  : 
-//=======================================================================
-  void BOP_AreaBuilder::NextLoop()
-{
-  myLoopIterator.Next();
-}
-
-//=======================================================================
-//function : Loop
-//purpose  : 
-//=======================================================================
-  const Handle(BOP_Loop)& BOP_AreaBuilder::Loop() const
-{
-  const Handle(BOP_Loop)& L = myLoopIterator.Value();
-  return L;
-}
-
-//=======================================================================
-//function : ADD_Loop_TO_LISTOFLoop
-//purpose  : 
-//=======================================================================
-  void BOP_AreaBuilder::ADD_Loop_TO_LISTOFLoop(const Handle(BOP_Loop)& L,
-                                              BOP_ListOfLoop& LOL) const
-{
-  LOL.Append(L);
-}
-
-//=======================================================================
-//function : REM_Loop_FROM_LISTOFLoop
-//purpose  : 
-//=======================================================================
-  void BOP_AreaBuilder::REM_Loop_FROM_LISTOFLoop(BOP_ListIteratorOfListOfLoop& ITA,
-                                                BOP_ListOfLoop& A) const
-{
-  A.Remove(ITA);
-}
-
-//=======================================================================
-//function : ADD_LISTOFLoop_TO_LISTOFLoop
-//purpose  : 
-//=======================================================================
-  void BOP_AreaBuilder::ADD_LISTOFLoop_TO_LISTOFLoop(BOP_ListOfLoop& A1,
-                                                    BOP_ListOfLoop& A2) const
-                                                    
-{
-  A2.Append(A1);
-}
diff --git a/src/BOP/BOP_ArgumentAnalyzer.cdl b/src/BOP/BOP_ArgumentAnalyzer.cdl
deleted file mode 100755 (executable)
index 124f500..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
--- Created on: 2004-09-03
--- Created by: Oleg FEDYAEV
--- Copyright (c) 2004-2012 OPEN CASCADE SAS
---
--- The content of this file is subject to the Open CASCADE Technology Public
--- License Version 6.5 (the "License"). You may not use the content of this file
--- except in compliance with the License. Please obtain a copy of the License
--- at http://www.opencascade.org and read it completely before using this file.
---
--- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
--- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
---
--- The Original Code and all software distributed under the License is
--- distributed on an "AS IS" basis, without warranty of any kind, and the
--- Initial Developer hereby disclaims all such warranties, including without
--- limitation, any warranties of merchantability, fitness for a particular
--- purpose or non-infringement. Please see the License for the specific terms
--- and conditions governing the rights and limitations under the License.
-
-
-class ArgumentAnalyzer from BOP
-    ---Purpose: check the validity of argument(s) for Boolean Operations
-    
-uses
-    Shape       from TopoDS,
-    Operation   from BOP,
-    CheckStatus from BOP,
-    Operation  from BOP,
-    ShapeEnum  from TopAbs,
-    ListOfCheckResult from BOP
-    
-is
-    Create
-       returns ArgumentAnalyzer;
-       ---Purpose: empty constructor
-
-    SetShape1(me: in out; TheShape: Shape from TopoDS);
-    ---Purpose: sets object shape
-
-    SetShape2(me: in out; TheShape: Shape from TopoDS);
-    ---Purpose: sets tool shape
-
-    GetShape1(me)
-       returns Shape from TopoDS;
-       ---C++: return const &
-       ---Purpose: returns object shape;
-
-    GetShape2(me)
-       returns Shape from TopoDS;
-       ---C++: return const &
-       ---Purpose: returns tool shape
-
-    --modified by NIZHNY-MKK  Fri Sep  3 17:14:55 2004.BEGIN
-    ---options
-    OperationType(me: in out)
-       returns Operation from BOP;
-       ---C++: return &
-       ---Purpose: returns ref
-
-    StopOnFirstFaulty(me: in out)
-       returns Boolean from Standard;
-       ---C++: return &
-       ---Purpose: returns ref
-
-    ArgumentTypeMode(me: in out)
-       returns Boolean from Standard;
-       ---C++: return &
-       ---C++: inline
-       ---Purpose: Returns (modifiable) mode 
-       --          that means checking types of shapes.
-
-    SelfInterMode(me: in out)
-       returns Boolean from Standard;
-       ---C++: return &
-       ---C++: inline
-       ---Purpose: Returns (modifiable) mode that means
-       --          checking of self-intersection of shapes.
-
-    SmallEdgeMode(me: in out)
-       returns Boolean from Standard;
-       ---C++: return &
-       ---C++: inline
-       ---Purpose: Returns (modifiable) mode that means
-       --          checking of small edges.
-
-    RebuildFaceMode(me: in out)
-       returns Boolean from Standard;
-       ---C++: return &
-       ---C++: inline
-       ---Purpose: Returns (modifiable) mode that means
-       --          checking of possibility to split or rebuild faces.
-
-    TangentMode(me: in out)
-       returns Boolean from Standard;
-       ---C++: return &
-       ---C++: inline
-       ---Purpose: Returns (modifiable) mode that means
-       --          checking of tangency between subshapes.
-
-    MergeVertexMode(me: in out)
-       returns Boolean from Standard;
-       ---C++: return &
-       ---C++: inline
-       ---Purpose: Returns (modifiable) mode that means
-       --          checking of problem of merging vertices.
-
-    MergeEdgeMode(me: in out)
-       returns Boolean from Standard;
-       ---C++: return &
-       ---C++: inline
-       ---Purpose: Returns (modifiable) mode that means
-       --          checking of problem of merging edges.
-
---    MergeFaceMode(me: in out)
---     returns Boolean from Standard;
---     ---C++: return &
---     ---C++: inline
---     ---Purpose: Returns (modifiable) mode that means
---     --          checking of problem of merging faces.
-
-    --modified by NIZHNY-MKK  Fri Sep  3 17:15:02 2004.END
-
-    ---
-    Perform(me: out);
-    ---Purpose: performs analysis
-
-    HasFaulty(me)
-       returns Boolean from Standard;
-       ---Purpose: result of test
-
-    GetCheckResult(me)
-       returns ListOfCheckResult from BOP;
-       ---C++: return const &
-       ---Purpose: returns a result of test
-
-    --- protected      
-    TestTypes(me: out)
-       is protected;
-
-    TestSelfInterferences(me: out)
-       is protected;
-
-    TestSmallEdge(me: out)
-       is protected;
-
-    TestRebuildFace(me: out)
-       is protected;
-
-    TestTangent(me: out)
-       is protected;
-
-    TestMergeSubShapes(me: out; theType: ShapeEnum from TopAbs)
-       is protected;
-
-    TestMergeVertex(me: out)
-       is protected;
-
-    TestMergeEdge(me: out)
-       is protected;
-
---    TestMergeFace(me: out)
---     is protected;
-
-
-fields
-
-    myShape1      : Shape             from TopoDS;
-    myShape2      : Shape             from TopoDS;
-    myStopOnFirst : Boolean           from Standard;
-    --modified by NIZHNY-MKK  Fri Sep  3 17:08:38 2004.BEGIN
-    myOperation   : Operation         from BOP;
-    myArgumentTypeMode  : Boolean           from Standard;
-    mySelfInterMode  : Boolean           from Standard;
-    mySmallEdgeMode  : Boolean           from Standard;
-    myRebuildFaceMode: Boolean           from Standard;
-    myTangentMode     : Boolean           from Standard;
-    myMergeVertexMode: Boolean           from Standard;
-    myMergeEdgeMode  : Boolean           from Standard;
---    myMergeFaceMode  : Boolean           from Standard;
-
-    --modified by NIZHNY-MKK  Fri Sep  3 17:08:41 2004.END
-    myResult      : ListOfCheckResult from BOP;
-    
-end ArgumentAnalyzer;
diff --git a/src/BOP/BOP_ArgumentAnalyzer.cxx b/src/BOP/BOP_ArgumentAnalyzer.cxx
deleted file mode 100755 (executable)
index e0e1559..0000000
+++ /dev/null
@@ -1,939 +0,0 @@
-// Created on: 2004-09-02
-// Copyright (c) 2004-2012 OPEN CASCADE SAS
-//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
-//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
-//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
-
-#include <BOP_ArgumentAnalyzer.ixx>
-#include <BOP_CheckResult.hxx>
-#include <BOP_ShellSolid.hxx>
-#include <BOP_WireSolid.hxx>
-#include <BOP_WireShell.hxx>
-#include <BOP_WireEdgeSet.hxx>
-#include <BOP_FaceBuilder.hxx>
-
-#include <TopExp.hxx>
-#include <TopExp_Explorer.hxx>
-#include <BRep_Builder.hxx>
-#include <BRep_Tool.hxx>
-#include <BRepExtrema_DistShapeShape.hxx>
-#include <gp_Pnt.hxx>
-#include <TopoDS_Iterator.hxx>
-#include <TopoDS.hxx>
-#include <TopoDS_Vertex.hxx>
-#include <TopoDS_Edge.hxx>
-#include <TopoDS_Wire.hxx>
-#include <TopoDS_Shell.hxx>
-#include <TopoDS_Solid.hxx>
-#include <TopTools_ListOfShape.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TopTools_SequenceOfShape.hxx>
-#include <TopTools_MapOfShape.hxx>
-
-#include <TColStd_Array2OfBoolean.hxx>
-
-#include <IntTools_Context.hxx>
-#include <IntTools_Range.hxx>
-#include <IntTools_ShrunkRange.hxx>
-#include <IntTools_EdgeEdge.hxx>
-#include <IntTools_CommonPrt.hxx>
-
-#include <BOPTools_DSFiller.hxx>
-#include <BOPTools_Tools3D.hxx>
-#include <BOPTools_Checker.hxx>
-#include <BOPTools_CheckResult.hxx>
-#include <BOPTools_ListOfCheckResults.hxx>
-#include <BOPTools_ListIteratorOfListOfCheckResults.hxx>
-
-#include <Standard_ErrorHandler.hxx>
-#include <Standard_Failure.hxx>
-
-static Standard_Boolean TestShapeType(const TopoDS_Shape & TheShape);
-
-static Standard_Boolean CheckEdge(const TopoDS_Edge& theEdge);
-
-static Standard_Boolean TestSubShapeType(const TopAbs_ShapeEnum theT1,
-                                         const TopAbs_ShapeEnum theT2,
-                                         const BOP_Operation    theOP);
-
-// ================================================================================
-// function: Constructor
-// purpose:
-// ================================================================================
-BOP_ArgumentAnalyzer::BOP_ArgumentAnalyzer() : 
-myStopOnFirst(Standard_False),
-myOperation(BOP_UNKNOWN),
-myArgumentTypeMode(Standard_False),
-mySelfInterMode(Standard_False),
-mySmallEdgeMode(Standard_False),
-myRebuildFaceMode(Standard_False),
-myTangentMode(Standard_False),
-myMergeVertexMode(Standard_False),
-myMergeEdgeMode(Standard_False)
-// myMergeFaceMode(Standard_False)
-{
-}
-
-// ================================================================================
-// function: SetShape1
-// purpose:
-// ================================================================================
-void BOP_ArgumentAnalyzer::SetShape1(const TopoDS_Shape & TheShape)
-{
-  myShape1 = TheShape;
-}
-
-// ================================================================================
-// function: SetShape2
-// purpose:
-// ================================================================================
-void BOP_ArgumentAnalyzer::SetShape2(const TopoDS_Shape & TheShape)
-{
-  myShape2 = TheShape;
-}
-
-// ================================================================================
-// function: GetShape1
-// purpose:
-// ================================================================================
-const TopoDS_Shape & BOP_ArgumentAnalyzer::GetShape1() const
-{
-  return myShape1;
-}
-
-// ================================================================================
-// function: GetShape2
-// purpose:
-// ================================================================================
-const TopoDS_Shape & BOP_ArgumentAnalyzer::GetShape2() const
-{
-  return myShape2;
-}
-
-// ================================================================================
-// function: OperationType
-// purpose:
-// ================================================================================
-BOP_Operation& BOP_ArgumentAnalyzer::OperationType() 
-{
-  return myOperation;
-}
-
-// ================================================================================
-// function: StopOnFirstFaulty
-// purpose:
-// ================================================================================
-Standard_Boolean & BOP_ArgumentAnalyzer::StopOnFirstFaulty()
-{
-  return myStopOnFirst;
-}
-
-// ================================================================================
-// function: Perform
-// purpose:
-// ================================================================================
-void BOP_ArgumentAnalyzer::Perform()
-{
-  try {
-    OCC_CATCH_SIGNALS
-    myResult.Clear();
-
-    if(myArgumentTypeMode) {
-      TestTypes();
-    }
-
-    if(mySelfInterMode) {
-      TestSelfInterferences();
-    }
-
-    if(mySmallEdgeMode) {
-      if(!(!myResult.IsEmpty() && myStopOnFirst))
-        TestSmallEdge();
-    }
-
-    if(myRebuildFaceMode) {
-      if(!(!myResult.IsEmpty() && myStopOnFirst))
-        TestRebuildFace();
-    }
-
-    if(myTangentMode) {
-      if(!(!myResult.IsEmpty() && myStopOnFirst))
-        TestTangent();
-    }
-
-    if(myMergeVertexMode) {
-      if(!(!myResult.IsEmpty() && myStopOnFirst))
-        TestMergeVertex();
-    }
-    
-    if(myMergeEdgeMode) {
-      if(!(!myResult.IsEmpty() && myStopOnFirst))
-        TestMergeEdge();
-    }
-    
-//     if(myMergeFaceMode) {
-//       TestMergeFace();
-//     }
-  }
-  catch(Standard_Failure) {
-    BOP_CheckResult aResult;
-    aResult.SetCheckStatus(BOP_CheckUnknown);
-    myResult.Append(aResult);
-  }
-}
-
-// ================================================================================
-// function: HasFaulty
-// purpose:
-// ================================================================================
-Standard_Boolean BOP_ArgumentAnalyzer::HasFaulty() const
-{
-  return ( !myResult.IsEmpty());
-}
-
-// ================================================================================
-// function: GetCheckResult
-// purpose:
-// ================================================================================
-const BOP_ListOfCheckResult& BOP_ArgumentAnalyzer::GetCheckResult() const
-{
-  return myResult;
-}
-
-// ================================================================================
-// function: TestTypes
-// purpose:
-// ================================================================================
-void BOP_ArgumentAnalyzer::TestTypes()
-{
-  Standard_Boolean isS1 = myShape1.IsNull(), isS2 = myShape2.IsNull();
-
-  if(isS1 && isS2) {
-    BOP_CheckResult aResult;
-    aResult.SetCheckStatus(BOP_BadType);
-    myResult.Append(aResult);
-    return;
-  }
-
-  Standard_Boolean testS1 = TestShapeType(myShape1);
-  Standard_Boolean testS2 = TestShapeType(myShape2);
-
-  // single shape check (begin)
-  if((isS1 && !isS2) || (!isS1 && isS2)) {
-//     Standard_Boolean testS = (isS1) ? testS1 : testS2;
-    Standard_Boolean testS = (isS1) ? testS2 : testS1;
-
-    if(!testS) {
-      const TopoDS_Shape & aS = (isS1) ? myShape1 : myShape2;
-      BOP_CheckResult aResult;
-      aResult.SetShape1(aS);
-      aResult.SetCheckStatus(BOP_BadType);
-      myResult.Append(aResult);
-      return;
-    }
-    
-  } // single shape is set (end)
-  // two shapes check (begin)
-  else {
-    // test compounds and compsolids
-    if(!testS1 || !testS2) {
-      BOP_CheckResult aResult;
-      if(!testS1 && !testS2) {
-       aResult.SetShape1(myShape1);
-       aResult.SetShape2(myShape2);
-      }
-      else {
-       const TopoDS_Shape & aS = (!testS1) ? myShape1 : myShape2;
-        if(!testS1)
-          aResult.SetShape1(aS);
-        else
-          aResult.SetShape2(aS);
-      }
-      aResult.SetCheckStatus(BOP_BadType);
-      myResult.Append(aResult);
-      return;
-    }
-    // test faces, wires, edges
-    TopAbs_ShapeEnum aT1 = myShape1.ShapeType(), aT2 = myShape2.ShapeType();
-
-    if(aT1 != TopAbs_COMPOUND && aT2 != TopAbs_COMPOUND) {
-      Standard_Boolean aTestRes = TestSubShapeType(aT1,aT2,myOperation);
-      if(!aTestRes) {
-        BOP_CheckResult aResult;
-       aResult.SetShape1(myShape1);
-       aResult.SetShape2(myShape2);
-       aResult.SetCheckStatus(BOP_BadType);
-       myResult.Append(aResult);
-       return;
-      }
-    }
-    else {
-      Standard_Boolean aTestRes = Standard_True;
-      if(aT1 == TopAbs_COMPOUND && aT2 != TopAbs_COMPOUND) {
-        TopoDS_Iterator itS1(myShape1);
-        while(itS1.More()) {
-          aT1 = itS1.Value().ShapeType();
-          aTestRes = TestSubShapeType(aT1,aT2,myOperation);
-          if(!aTestRes)
-            break;
-          itS1.Next();
-        }
-      }
-      else if(aT1 != TopAbs_COMPOUND && aT2 == TopAbs_COMPOUND) {
-        TopoDS_Iterator itS2(myShape2);
-        while(itS2.More()) {
-          aT2 = itS2.Value().ShapeType();
-          aTestRes = TestSubShapeType(aT1,aT2,myOperation);
-          if(!aTestRes)
-            break;
-          itS2.Next();
-        }
-      }
-      else {
-        TopoDS_Iterator itS1(myShape1);
-        while(itS1.More()) {
-          aT1 = itS1.Value().ShapeType();
-          TopoDS_Iterator itS2(myShape2);
-          while(itS2.More()) {
-            aT2 = itS2.Value().ShapeType();
-            aTestRes = TestSubShapeType(aT1,aT2,myOperation);
-            if(!aTestRes)
-              break;
-            itS2.Next();
-          }
-          if(!aTestRes)
-            break;
-          itS1.Next();
-        }
-      }
-
-      if(!aTestRes) {
-        BOP_CheckResult aResult;
-       aResult.SetShape1(myShape1);
-       aResult.SetShape2(myShape2);
-       aResult.SetCheckStatus(BOP_BadType);
-       myResult.Append(aResult);
-       return;
-      }
-    }
-  } // both shapes are set (end)
-}
-
-// ================================================================================
-// function: TestSelfInterferences
-// purpose:
-// ================================================================================
-void BOP_ArgumentAnalyzer::TestSelfInterferences()
-{
-  Standard_Integer i = 0;
-
-  for(i = 0; i < 2; i++) {
-    TopoDS_Shape aS = (i == 0) ? myShape1 : myShape2;
-
-    if(aS.IsNull())
-      continue;
-    BOPTools_Checker aChecker(aS);
-    aChecker.Perform();
-
-    if (aChecker.HasFaulty()) {
-      const BOPTools_ListOfCheckResults& aResultList = aChecker.GetCheckResult();
-      BOPTools_ListIteratorOfListOfCheckResults anIt(aResultList);
-
-      for(; anIt.More(); anIt.Next()) {
-       const BOPTools_CheckResult& aCheckResult = anIt.Value();
-
-       if((aCheckResult.GetCheckStatus() == BOPTools_CHKUNKNOWN) ||
-          (aCheckResult.GetCheckStatus() == BOPTools_BADSHRANKRANGE) ||
-          (aCheckResult.GetCheckStatus() == BOPTools_NULLSRANKRANGE)) {
-         continue;
-       }
-       BOP_CheckResult aResult;
-       if(i == 0)
-         aResult.SetShape1(myShape1);
-       else
-         aResult.SetShape2(myShape2);
-       TopTools_ListIteratorOfListOfShape anIt2(aCheckResult.GetShapes());
-
-       for(; anIt2.More(); anIt2.Next()) {
-         if(i == 0)
-           aResult.AddFaultyShape1(anIt2.Value());
-         else
-           aResult.AddFaultyShape2(anIt2.Value());
-       }
-       aResult.SetCheckStatus(BOP_SelfIntersect);
-       myResult.Append(aResult);
-
-       if(myStopOnFirst) {
-         return;
-       }
-      }
-    }
-  }
-}
-
-// ================================================================================
-// function: TestSmallEdge
-// purpose:
-// ================================================================================
-void BOP_ArgumentAnalyzer::TestSmallEdge() 
-{
-  Standard_Integer i = 0;
-  BRepExtrema_DistShapeShape aDist;
-
-  for(i = 0; i < 2; i++) {
-    TopoDS_Shape aS = (i == 0) ? myShape1 : myShape2;
-
-    if(aS.IsNull())
-      continue;
-
-    TopExp_Explorer anExp(aS, TopAbs_EDGE);
-
-    for(; anExp.More(); anExp.Next()) {
-      TopoDS_Edge anEdge = TopoDS::Edge(anExp.Current());
-
-      if(!CheckEdge(anEdge)) {
-       Standard_Boolean bKeepResult = Standard_True;
-
-       if(myOperation == BOP_SECTION) {
-         TopoDS_Shape anOtherS = (i == 0) ? myShape2 : myShape1;
-         
-         if(!anOtherS.IsNull()) {
-//         BRepExtrema_DistShapeShape aDist;
-           aDist.LoadS2(anOtherS);
-           
-           Standard_Boolean bVertexIsOnShape = Standard_False;
-           Standard_Integer ii = 0;
-           TopExp_Explorer anExpV(anEdge, TopAbs_VERTEX);
-           
-           for(; anExpV.More(); anExpV.Next()) {
-             TopoDS_Shape aV = anExpV.Current();
-
-             aDist.LoadS1(aV);
-             aDist.Perform();
-
-             if(aDist.IsDone()) {
-
-               for(ii = 1; ii <= aDist.NbSolution(); ii++) {
-                 Standard_Real aTolerance = BRep_Tool::Tolerance(TopoDS::Vertex(aV));
-                 TopoDS_Shape aSupportShape = aDist.SupportOnShape2(ii);
-
-                 switch(aSupportShape.ShapeType()) {
-                 case TopAbs_VERTEX: {
-                   aTolerance += BRep_Tool::Tolerance(TopoDS::Vertex(aSupportShape));
-                   break;
-                 }
-                 case TopAbs_EDGE: {
-                   aTolerance += BRep_Tool::Tolerance(TopoDS::Edge(aSupportShape));
-                   break;
-                 }
-                 case TopAbs_FACE: {
-                   aTolerance += BRep_Tool::Tolerance(TopoDS::Face(aSupportShape));
-                   break;
-                 }
-                 default:
-                   break;
-                 }
-                 
-                 if(aDist.Value() < aTolerance) {
-                   bVertexIsOnShape = Standard_True;
-                   break;
-                 }
-               }
-             }
-           }
-
-           if(!bVertexIsOnShape) {
-             bKeepResult = Standard_False;
-           }
-         }
-       }
-
-       if(bKeepResult) {
-         BOP_CheckResult aResult;
-
-         if(i == 0) {
-           aResult.SetShape1(myShape1);
-           aResult.AddFaultyShape1(anEdge);
-         }
-         else {
-           aResult.SetShape2(myShape2);
-           aResult.AddFaultyShape2(anEdge);
-         }
-         
-         aResult.SetCheckStatus(BOP_TooSmallEdge);
-         myResult.Append(aResult);
-
-         if(myStopOnFirst) {
-           return;
-         }
-       }
-      }
-    }
-  }
-}
-
-// ================================================================================
-// function: TestRebuildFace
-// purpose:
-// ================================================================================
-void BOP_ArgumentAnalyzer::TestRebuildFace() 
-{
-  if((myOperation == BOP_SECTION) ||
-     (myOperation == BOP_UNKNOWN))
-    return;
-  Standard_Integer i = 0;
-
-  for(i = 0; i < 2; i++) {
-    TopoDS_Shape aS = (i == 0) ? myShape1 : myShape2;
-
-    if(aS.IsNull())
-      continue;
-
-    TopExp_Explorer anExp(aS, TopAbs_FACE);
-
-    for(; anExp.More(); anExp.Next()) {
-      TopoDS_Face aFace = TopoDS::Face(anExp.Current());
-
-      BOP_WireEdgeSet aWES (aFace);
-      TopExp_Explorer anExpE(aFace, TopAbs_EDGE);
-      Standard_Integer nbstartedges = 0;
-
-      for(; anExpE.More(); anExpE.Next()) {
-       aWES.AddStartElement(anExpE.Current());
-       nbstartedges++;
-      }
-      BOP_FaceBuilder aFB;
-      aFB.Do(aWES);
-      const TopTools_ListOfShape& aLF = aFB.NewFaces();
-      Standard_Boolean bBadFace = Standard_False;
-
-      if(aLF.Extent() != 1) {
-       bBadFace = Standard_True;
-      }
-      else {
-       Standard_Integer nbedgeused = 0;
-       anExpE.Init(aLF.First(), TopAbs_EDGE);
-
-       for(; anExpE.More(); anExpE.Next(), nbedgeused++);
-
-       if(nbstartedges != nbedgeused) {
-         bBadFace = Standard_True;
-       }
-      }
-
-      if(bBadFace) {
-       BOP_CheckResult aResult;
-
-       if(i == 0) {
-         aResult.SetShape1(myShape1);
-         aResult.AddFaultyShape1(aFace);
-       }
-       else {
-         aResult.SetShape2(myShape2);
-         aResult.AddFaultyShape2(aFace);
-       }
-         
-       aResult.SetCheckStatus(BOP_NonRecoverableFace);
-       myResult.Append(aResult);
-
-       if(myStopOnFirst) {
-         return;
-       }
-      }
-    }
-  }
-}
-
-// ================================================================================
-// function: TestTangent
-// purpose:
-// ================================================================================
-void BOP_ArgumentAnalyzer::TestTangent() 
-{
- // not implemented
-}
-
-// ================================================================================
-// function: TestMergeSubShapes
-// purpose:
-// ================================================================================
- void BOP_ArgumentAnalyzer::TestMergeSubShapes(const TopAbs_ShapeEnum theType) 
-{
-  if(myShape1.IsNull() || myShape2.IsNull())
-    return;
-
-  BOP_CheckStatus aStatus = BOP_CheckUnknown;
-
-  switch(theType) {
-  case TopAbs_VERTEX: {
-    aStatus = BOP_IncompatibilityOfVertex;
-    break;
-  }
-  case TopAbs_EDGE: {
-    aStatus = BOP_IncompatibilityOfEdge;
-    break;
-  }
-  case TopAbs_FACE: {
-    aStatus = BOP_IncompatibilityOfFace;
-    break;
-  }
-  default: 
-    return;
-  }
-  TopExp_Explorer anExp1(myShape1, theType);
-  TopExp_Explorer anExp2(myShape2, theType);
-  TopTools_SequenceOfShape aSeq1, aSeq2;
-  TopTools_MapOfShape aMap1, aMap2;
-
-  for(; anExp1.More(); anExp1.Next()) {
-    TopoDS_Shape aS1 = anExp1.Current();
-
-    if(aMap1.Contains(aS1))
-      continue;
-    aSeq1.Append(aS1);
-    aMap1.Add(aS1);
-  }
-
-  for(; anExp2.More(); anExp2.Next()) {
-    TopoDS_Shape aS2 = anExp2.Current();
-    if(aMap2.Contains(aS2))
-      continue;
-    aSeq2.Append(aS2);
-    aMap2.Add(aS2);
-  }
-
-  TColStd_Array2OfBoolean anArrayOfFlag(1, aSeq1.Length(), 1, aSeq2.Length());
-  Standard_Integer i = 0, j = 0;
-  for(i = 1; i <= aSeq1.Length(); i++)
-    for(j = 1; j <= aSeq2.Length(); j++)
-      anArrayOfFlag.SetValue(i, j, Standard_False);
-
-  for(i = 1; i <= aSeq1.Length(); i++) {
-    TopoDS_Shape aS1 = aSeq1.Value(i);
-    TopTools_ListOfShape aListOfS2;
-    Standard_Integer nbs = 0;
-
-    for(j = 1; j <= aSeq2.Length(); j++) {
-      TopoDS_Shape aS2 = aSeq2.Value(j);
-      Standard_Boolean bIsEqual = Standard_False;
-
-      if(theType == TopAbs_VERTEX) {
-
-        TopoDS_Vertex aV1 = TopoDS::Vertex(aS1);
-       TopoDS_Vertex aV2 = TopoDS::Vertex(aS2);
-        gp_Pnt aP1 = BRep_Tool::Pnt(aV1);
-        gp_Pnt aP2 = BRep_Tool::Pnt(aV2);
-        Standard_Real aDist = aP1.Distance(aP2);
-
-        if(aDist <= (BRep_Tool::Tolerance(aV1) + BRep_Tool::Tolerance(aV2))) {
-          bIsEqual = Standard_True;
-        }
-      }
-      else if(theType == TopAbs_EDGE) {
-       Standard_Integer aDiscretize = 30;
-       Standard_Real    aDeflection = 0.01;
-       TopoDS_Edge aE1 = TopoDS::Edge(aS1);
-       TopoDS_Edge aE2 = TopoDS::Edge(aS2);
-
-       IntTools_EdgeEdge aEE;
-       aEE.SetEdge1 (aE1);
-       aEE.SetEdge2 (aE2);
-       aEE.SetTolerance1 (BRep_Tool::Tolerance(aE1));
-       aEE.SetTolerance2 (BRep_Tool::Tolerance(aE2));
-       aEE.SetDiscretize (aDiscretize);
-       aEE.SetDeflection (aDeflection);
-
-       Standard_Real f = 0., l = 0.;
-       BRep_Tool::Range(aE1, f, l);
-       aEE.SetRange1(f, l);
-
-       BRep_Tool::Range(aE2, f, l);
-       aEE.SetRange2(f, l);
-
-       aEE.Perform();
-
-       if (aEE.IsDone()) {
-         const IntTools_SequenceOfCommonPrts& aCPrts = aEE.CommonParts();
-         Standard_Integer ii = 0;
-
-         for (ii = 1; ii <= aCPrts.Length(); ii++) {
-           const IntTools_CommonPrt& aCPart = aCPrts(ii);
-
-           if (aCPart.Type() == TopAbs_EDGE) {
-             bIsEqual = Standard_True;
-           }
-         }
-       }
-      }
-      else if(theType == TopAbs_FACE) {
-        // not yet implemented!
-      }
-
-      if(bIsEqual) {
-       anArrayOfFlag.SetValue(i, j, Standard_True );
-       aListOfS2.Append(aS2);
-       nbs++;
-      }
-    }
-
-    if(nbs > 1) {
-      BOP_CheckResult aResult;
-
-      aResult.SetShape1(myShape1);
-      aResult.SetShape2(myShape2);
-      aResult.AddFaultyShape1(aS1);
-      TopTools_ListIteratorOfListOfShape anIt(aListOfS2);
-
-      for(; anIt.More(); anIt.Next()) {
-       aResult.AddFaultyShape2(anIt.Value());
-      }
-
-      aResult.SetCheckStatus(aStatus);
-      myResult.Append(aResult);
-
-      if(myStopOnFirst) {
-       return;
-      }
-    }
-  }
-
-  for(i = 1; i <= aSeq2.Length(); i++) {
-    TopoDS_Shape aS2 = aSeq2.Value(i);
-    TopTools_ListOfShape aListOfS1;
-    Standard_Integer nbs = 0;
-
-    for(j = 1; j <= aSeq1.Length(); j++) {
-      TopoDS_Shape aS1 = aSeq1.Value(j);
-
-      if(anArrayOfFlag.Value(j, i)) {
-       aListOfS1.Append(aS1);
-       nbs++;
-      }
-    }
-
-    if(nbs > 1) {
-      BOP_CheckResult aResult;
-
-      aResult.SetShape1(myShape1);
-      aResult.SetShape2(myShape2);
-      TopTools_ListIteratorOfListOfShape anIt(aListOfS1);
-
-      for(; anIt.More(); anIt.Next()) {
-       aResult.AddFaultyShape1(anIt.Value());
-      }
-      aResult.AddFaultyShape2(aS2);
-
-      aResult.SetCheckStatus(aStatus);
-      myResult.Append(aResult);
-
-      if(myStopOnFirst) {
-       return;
-      }
-    }
-  }
-}
-
-// ================================================================================
-// function: TestMergeVertex
-// purpose:
-// ================================================================================
-void BOP_ArgumentAnalyzer::TestMergeVertex() 
-{
-  TestMergeSubShapes(TopAbs_VERTEX); 
-}
-
-// ================================================================================
-// function: TestMergeEdge
-// purpose:
-// ================================================================================
-void BOP_ArgumentAnalyzer::TestMergeEdge() 
-{
-  TestMergeSubShapes(TopAbs_EDGE); 
-}
-
-// ================================================================================
-// function: TestMergeFace
-// purpose:
-// ================================================================================
-// void BOP_ArgumentAnalyzer::TestMergeFace() 
-// {
-  // not implemented
-// }
-
-// ----------------------------------------------------------------------
-// static function: TestShapeType
-// purpose:
-// ----------------------------------------------------------------------
-Standard_Boolean TestShapeType(const TopoDS_Shape & TheShape)
-{
-  if(TheShape.IsNull())
-    return Standard_False;
-
-  TopAbs_ShapeEnum aT = TheShape.ShapeType();
-
-  if(aT == TopAbs_COMPOUND && BOPTools_Tools3D::IsEmptyShape(TheShape))
-    return Standard_False;
-
-  TopoDS_Iterator anIt;
-  TopoDS_Shape aSTmp, aShape;
-  Standard_Integer aNbShapes, TreatRes = 0;
-
-  if(aT==TopAbs_COMPOUND || aT==TopAbs_COMPSOLID) {
-    aNbShapes=0;
-    anIt.Initialize(TheShape);
-    for (; anIt.More(); anIt.Next()) {
-      if(!aNbShapes) {
-       aSTmp=anIt.Value();
-      }
-      aNbShapes++;
-      if(aNbShapes>1) {
-       break;
-      }
-    }
-    if(aT == TopAbs_COMPOUND) {
-      if (aNbShapes==1) {
-       TreatRes = BOPTools_DSFiller::TreatCompound(TheShape, aSTmp);
-       if(TreatRes != 0)
-         return Standard_False;
-       aShape=aSTmp;
-       aT = aShape.ShapeType();
-      }
-      else if (aNbShapes>1) {
-       TreatRes = BOPTools_DSFiller::TreatCompound(TheShape, aSTmp);
-       if(TreatRes != 0)
-         return Standard_False;
-       aShape=aSTmp;
-       aT=aShape.ShapeType();
-      }
-    }
-  }
-
-  if(aT==TopAbs_COMPOUND || aT==TopAbs_COMPSOLID) {
-    return Standard_False;
-  }
-
-  return Standard_True;
-}
-
-// ----------------------------------------------------------------------
-// static function: CheckEdge
-// purpose:
-// ----------------------------------------------------------------------
-Standard_Boolean CheckEdge(const TopoDS_Edge& theEdge) 
-{
-  Handle(IntTools_Context) aContext;
-  TopoDS_Vertex aV1, aV2;
-  //
-  //modified by NIZNHY-PKV Tue Jan 31 15:07:13 2012f
-  aContext=new IntTools_Context;
-  ////modified by NIZNHY-PKV Tue Jan 31 15:07:16 2012t
-  TopExp::Vertices(theEdge, aV1, aV2);
-
-
-  if(aV1.IsNull() || aV2.IsNull() || BRep_Tool::Degenerated(theEdge))
-    return Standard_True;
-  Standard_Real aFirst = 0., aLast = 0.;
-  BRep_Tool::Range(theEdge, aFirst, aLast);
-  IntTools_Range aRange(aFirst, aLast);
-  IntTools_ShrunkRange aSR(theEdge, aV1, aV2, aRange, aContext);
-
-  if (!aSR.IsDone() || aSR.ErrorStatus() == 6) {
-    return Standard_False;
-  }
-  return Standard_True;
-}
-
-// ----------------------------------------------------------------------
-// static function: TestSubShapeType
-// purpose:
-// ----------------------------------------------------------------------
-Standard_Boolean TestSubShapeType(const TopAbs_ShapeEnum theT1,
-                                  const TopAbs_ShapeEnum theT2,
-                                  const BOP_Operation    theOP)
-{
-  TopAbs_ShapeEnum aT1 = theT1, aT2 = theT2;
-
-  if(aT1==TopAbs_FACE) {
-    if(aT2==TopAbs_SOLID || aT2==TopAbs_SHELL || aT2==TopAbs_FACE ||
-       aT2==TopAbs_WIRE || aT2==TopAbs_EDGE) {
-      aT1=TopAbs_SHELL;
-    }
-  }
-  if(aT2==TopAbs_FACE) {
-    if(aT1==TopAbs_SOLID || aT1==TopAbs_SHELL ||
-       aT1==TopAbs_WIRE || aT1==TopAbs_EDGE) {
-      aT2=TopAbs_SHELL;
-    }
-  }
-  if(aT1==TopAbs_EDGE) {
-    if(aT2==TopAbs_SOLID || aT2==TopAbs_SHELL ||
-       aT2==TopAbs_WIRE || aT2==TopAbs_EDGE) {
-      aT1=TopAbs_WIRE;
-    }
-  }
-  if(aT2==TopAbs_EDGE) {
-    if(aT1==TopAbs_SOLID || aT1==TopAbs_SHELL || aT1==TopAbs_WIRE) {
-      aT2=TopAbs_WIRE;
-    }
-  }
-
-  // test operations
-  if(theOP!=BOP_UNKNOWN) {
-    Standard_Boolean opOk;
-    if(aT1==TopAbs_SHELL && aT2==TopAbs_SHELL)
-      opOk = Standard_True;
-    else if(aT1==TopAbs_SOLID && aT2==TopAbs_SOLID)
-      opOk = Standard_True;
-    else if((aT1==TopAbs_SOLID && aT2==TopAbs_SHELL) ||
-            (aT2==TopAbs_SOLID && aT1==TopAbs_SHELL))
-      opOk = Standard_True;
-    else if(aT1==TopAbs_WIRE && aT2==TopAbs_WIRE)
-      opOk = Standard_True;
-    else if((aT1==TopAbs_WIRE  && aT2==TopAbs_SHELL) ||
-            (aT2==TopAbs_WIRE  && aT1==TopAbs_SHELL))
-      opOk = Standard_True;
-    else if((aT1==TopAbs_WIRE  && aT2==TopAbs_SOLID) ||
-            (aT2==TopAbs_WIRE  && aT1==TopAbs_SOLID))
-      opOk = Standard_True;
-    else 
-      opOk = Standard_False;
-
-    if(!opOk) {
-      return Standard_False;
-    }
-
-    if((aT1==TopAbs_SHELL && aT2==TopAbs_SOLID) ||
-       (aT2==TopAbs_SHELL && aT1==TopAbs_SOLID)) {
-      if(!BOP_ShellSolid::CheckArgTypes(aT1,aT2,theOP)) {
-        return Standard_False;
-      }
-    }
-    if((aT1==TopAbs_WIRE && aT2==TopAbs_SOLID) ||
-       (aT2==TopAbs_WIRE && aT1==TopAbs_SOLID)) {
-      if(!BOP_WireSolid::CheckArgTypes(aT1,aT2,theOP)) {
-        return Standard_False;
-      }
-    }
-    if((aT1==TopAbs_WIRE && aT2==TopAbs_SHELL) ||
-       (aT2==TopAbs_WIRE && aT1==TopAbs_SHELL)) {
-      if(!BOP_WireShell::CheckArgTypes(aT1,aT2,theOP)) {
-        return Standard_False;
-      }
-    }
-  }
-  
-  return Standard_True;
-}
diff --git a/src/BOP/BOP_ArgumentAnalyzer.lxx b/src/BOP/BOP_ArgumentAnalyzer.lxx
deleted file mode 100755 (executable)
index 7918ffc..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright (c) 1999-2012 OPEN CASCADE SAS
-//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
-//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
-//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
-inline Standard_Boolean& BOP_ArgumentAnalyzer::ArgumentTypeMode() 
-{
-  return myArgumentTypeMode;
-}
-
-inline Standard_Boolean& BOP_ArgumentAnalyzer::SelfInterMode() 
-{
-  return mySelfInterMode;
-}
-
-inline Standard_Boolean& BOP_ArgumentAnalyzer::SmallEdgeMode() 
-{
-  return mySmallEdgeMode;
-}
-
-inline Standard_Boolean& BOP_ArgumentAnalyzer::RebuildFaceMode() 
-{
-  return myRebuildFaceMode;
-}
-
-inline Standard_Boolean& BOP_ArgumentAnalyzer::TangentMode() 
-{
-  return myTangentMode;
-}
-
-inline Standard_Boolean& BOP_ArgumentAnalyzer::MergeVertexMode() 
-{
-  return myMergeVertexMode;
-}
-
-inline Standard_Boolean& BOP_ArgumentAnalyzer::MergeEdgeMode() 
-{
-  return myMergeEdgeMode;
-}
-
-// inline Standard_Boolean& BOP_ArgumentAnalyzer::MergeFaceMode() 
-// {
-//   return myMergeFaceMode;
-// }
diff --git a/src/BOP/BOP_BlockBuilder.cdl b/src/BOP/BOP_BlockBuilder.cdl
deleted file mode 100755 (executable)
index 8eea71e..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
--- Created on: 1993-02-25
--- Created by: Jean Yves LEBEY
--- Copyright (c) 1993-1999 Matra Datavision
--- Copyright (c) 1999-2012 OPEN CASCADE SAS
---
--- The content of this file is subject to the Open CASCADE Technology Public
--- License Version 6.5 (the "License"). You may not use the content of this file
--- except in compliance with the License. Please obtain a copy of the License
--- at http://www.opencascade.org and read it completely before using this file.
---
--- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
--- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
---
--- The Original Code and all software distributed under the License is
--- distributed on an "AS IS" basis, without warranty of any kind, and the
--- Initial Developer hereby disclaims all such warranties, including without
--- limitation, any warranties of merchantability, fitness for a particular
--- purpose or non-infringement. Please see the License for the specific terms
--- and conditions governing the rights and limitations under the License.
-
-
-class BlockBuilder from BOP
-        
-    ---Purpose: 
-    ---  auxiliary class to storage and operate with data of  
-    ---  connexity blocks inside the given ShapeSet 
-    --- 
-     
-uses
-    
-    Shape     from TopoDS,  
-     
-    ShapeSet  from BOP,
-    BlockIterator from BOP,
-
-    SequenceOfInteger         from TColStd,
-    DataMapOfIntegerInteger   from TColStd,
-    IndexedMapOfOrientedShape from TopTools
-
-is
-
-    Create  
-       returns BlockBuilder;
-       ---Purpose:  
-       --- Empty  Constructor 
-       ---
-    Create(SS : in out ShapeSet)  
-       returns BlockBuilder;
-       ---Purpose:  
-       --- Create an  object for given ShapeSet  
-       ---
-    MakeBlock(me : in out;  
-             SS : in out ShapeSet)  
-       is static;
-       ---Purpose:   
-       --- Compute the set of connexity blocks of elements  
-       --- for of the ShapeSet SS
-    -- 
-    -- 
-    --   I t e r a t i o n   o n   b l o c k s made by MakeBlock
-    -- 
-    InitBlock(me : in out)  
-       is static; 
-
-    MoreBlock(me)  
-       returns Boolean from Standard  
-       is static; 
-       
-    NextBlock(me : in out)  
-       is static;
-    --
-    -- I t e r a t i o n   o n  on shapes inside the current block 
-    --
-    BlockIterator(me)  
-       returns BlockIterator from  BOP   
-       is static;
-       --- Purpose:  
-       --- Returns the BlockIterator for the current block  .
-       ---
-    Element(me; BI : BlockIterator from  BOP)  
-       returns Shape from TopoDS  
-       is static; 
-       ---C++: return const &
-       ---Purpose:  
-       --- Returns the current element of <BI>.
-       ---
-    Element(me; I : Integer from Standard)  
-       returns Shape from TopoDS  
-       is static;
-       ---C++: return const & 
-       ---Purpose:  
-       --- Returns the current element with index  <I> .
-       ---
-    Element(me; S : Shape from TopoDS)  
-       returns Integer from Standard;
-       ---Purpose:   
-       --- Returns the index of the current element .
-       ---
-    ElementIsValid(me; BI : BlockIterator)  
-       returns Boolean from Standard; 
-       ---Purpose:   
-       --- Internal
-       ---
-    ElementIsValid(me; I : Integer from Standard)  
-       returns Boolean from Standard; 
-       ---Purpose:   
-       --- Internal
-       ---
-    AddElement(me : in out; S : Shape from TopoDS)  
-       returns Integer from Standard;
-       ---Purpose:   
-       --- Internal 
-       ---
-    SetValid(me : in out;  
-            BI : BlockIterator from  BOP ;  
-            IsValid : Boolean from Standard); 
-       ---Purpose:   
-       --- Internal
-       ---
-    SetValid(me : in out;  
-            I : Integer from Standard;  
-            IsValid : Boolean from Standard);
-       ---Purpose:   
-       --- Internal
-       ---
-    CurrentBlockIsRegular(me : in out)  
-       returns Boolean from Standard;
-       ---Purpose:   
-       --- Returns TRUE if all elements inside the current block 
-       --- are biconnexial          
-       ---
-    
-fields
-
-    myOrientedShapeMapIsValid : DataMapOfIntegerInteger from TColStd;
-    myOrientedShapeMap        : IndexedMapOfOrientedShape from TopTools;
-    myBlocks                  : SequenceOfInteger from TColStd;
-    myBlockIndex              : Integer from Standard;
-    myIsDone                  : Boolean from Standard;
-    myBlocksIsRegular         : SequenceOfInteger from TColStd;
-
-end BlockBuilder;
diff --git a/src/BOP/BOP_BlockBuilder.cxx b/src/BOP/BOP_BlockBuilder.cxx
deleted file mode 100755 (executable)
index bdb7743..0000000
+++ /dev/null
@@ -1,319 +0,0 @@
-// Created on: 1993-03-11
-// Created by: Jean Yves LEBEY
-// Copyright (c) 1993-1999 Matra Datavision
-// Copyright (c) 1999-2012 OPEN CASCADE SAS
-//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
-//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
-//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
-
-#include <BOP_BlockBuilder.ixx>
-
-#include <Standard_Failure.hxx>
-
-//=======================================================================
-//function : BOP_BlockBuilder::BOP_BlockBuilder
-//purpose  : 
-//=======================================================================
-BOP_BlockBuilder::BOP_BlockBuilder()
-:
-  myIsDone(Standard_False)
-{
-}
-
-//=======================================================================
-//function : BOP_BlockBuilder::BOP_BlockBuilder
-//purpose  : 
-//=======================================================================
-  BOP_BlockBuilder::BOP_BlockBuilder (BOP_ShapeSet& SS)
-  :myIsDone(Standard_False)
-{
-  MakeBlock(SS);
-}
-
-//=======================================================================
-//function : MakeBlock
-//purpose  : 
-//=======================================================================
-  void BOP_BlockBuilder::MakeBlock(BOP_ShapeSet& SS)
-{
-  // Compute the set of connexity blocks of elements of element set SS
-  //
-  // Logic : 
-  // - A block is a set of connex elements of SS
-  // - We assume that any element of SS appears in only 1 connexity block.
-  //
-  // Implementation :
-  // - All the elements of all the blocks are stored in map myOrientedShapeMap(M).
-  // - A connexity block is a segment [f,l] of element indices of M.
-  // - myBlocks is a sequence of integer; each integer is the index of the 
-  //   first element (in M) of a connexity block.
-  // - Bounds [f,l] of a connexity block are : 
-  //    f = myBlocks(i)
-  //    l = myBlocks(i+1) - 1
-
-  myOrientedShapeMap.Clear();
-  myOrientedShapeMapIsValid.Clear();
-  myBlocks.Clear();
-  myBlocksIsRegular.Clear();
-  //
-  Standard_Boolean IsRegular, CurNei, Mextent, Eindex,
-                   EnewinM, searchneighbours, condregu;
-  Standard_Integer iiregu;
-  //
-  //
-  SS.InitStartElements();
-  for (; SS.MoreStartElements(); SS.NextStartElement()) {
-    const TopoDS_Shape& E = SS.StartElement(); 
-    Mextent = myOrientedShapeMap.Extent();
-    Eindex = AddElement(E); 
-
-    // E = current element of the element set SS
-    // Mextent = index of last element stored in map M, before E is added. 
-    // Eindex  = index of E added to M : Eindex > Mextent => E is new in M
-
-    EnewinM = (Eindex > Mextent);
-    if (EnewinM) {
-      //
-      // make a new block starting at element Eindex
-      myBlocks.Append(Eindex);
-      IsRegular = Standard_True; CurNei = 0;
-      // put in current block all the elements connex to E :
-      // while an element E has been added to M
-      //    - compute neighbours of E : N(E)
-      //    - add each element N of N(E) to M
-
-      Mextent = myOrientedShapeMap.Extent();
-      searchneighbours = (Eindex <= Mextent);
-      while (searchneighbours) {
-
-       // E = element of M on which neighbours must be searched
-       // first step : Eindex = index of starting element of SS
-       // next steps : Eindex = index of neighbours of starting element of SS 
-       const TopoDS_Shape& anE = myOrientedShapeMap(Eindex);
-       CurNei = SS.MaxNumberSubShape(anE);
-       
-       condregu = (CurNei > 2) ? Standard_False : Standard_True;
-       
-       IsRegular = IsRegular && condregu;
-       //
-       // compute neighbours of E : add them to M to increase M.Extent().
-       SS.InitNeighbours(anE);
-
-       for (; SS.MoreNeighbours(); SS.NextNeighbour()) {
-         const TopoDS_Shape& N = SS.Neighbour();
-         AddElement(N);
-       }
-       
-       Eindex++;
-       Mextent = myOrientedShapeMap.Extent();
-       searchneighbours = (Eindex <= Mextent);
-       
-      } // while (searchneighbours)
-
-      iiregu = IsRegular ? 1 : 0;
-      myBlocksIsRegular.Append(iiregu);      
-    } // if (EnewinM)
-  } // for ()
-  //
-  // To value the l bound of the last connexity block created above,
-  // we create an artificial block of value = myOrientedShapeMap.Extent() + 1
-  // The real number of connexity blocks is myBlocks.Length() - 1
-  Mextent = myOrientedShapeMap.Extent();
-  myBlocks.Append(Mextent + 1);
-
-  myIsDone = Standard_True;
-}
-
-//=======================================================================
-//function : InitBlock
-//purpose  : 
-//=======================================================================
-  void BOP_BlockBuilder::InitBlock()
-{
-  myBlockIndex = 1;
-}
-
-//=======================================================================
-//function : MoreBlock
-//purpose  : 
-//=======================================================================
-  Standard_Boolean BOP_BlockBuilder::MoreBlock() const
-{
-  // the length of myBlocks is 1 + number of connexity blocks
-  Standard_Integer l =  myBlocks.Length();
-  Standard_Boolean b = (myBlockIndex < l);
-  return b;
-}
-
-//=======================================================================
-//function : NextBlock
-//purpose  : 
-//=======================================================================
-  void BOP_BlockBuilder::NextBlock()
-{
-  myBlockIndex++;
-}
-
-//=======================================================================
-//function : BlockIterator
-//purpose  : 
-//=======================================================================
-  BOP_BlockIterator BOP_BlockBuilder::BlockIterator() const
-{
-  Standard_Integer lower, upper;
-
-  lower = myBlocks(myBlockIndex);
-  upper = myBlocks(myBlockIndex+1)-1;
-
-  return BOP_BlockIterator(lower,upper);
-}
-
-//=======================================================================
-//function : Element
-//purpose  : 
-//=======================================================================
-  const TopoDS_Shape& BOP_BlockBuilder::Element (const BOP_BlockIterator& BI) const
-{
-  Standard_Boolean isbound = BI.More();
-  if (!isbound) {
-    Standard_Failure::Raise("OutOfRange");
-  }
-  
-  Standard_Integer index = BI.Value();
-  const TopoDS_Shape& E = myOrientedShapeMap(index);
-  return E;
-} 
-//=======================================================================
-//function : Element
-//purpose  : 
-//=======================================================================
-  const TopoDS_Shape& BOP_BlockBuilder::Element (const Standard_Integer index) const
-{
-  Standard_Boolean isbound = myOrientedShapeMapIsValid.IsBound(index);
-  if (!isbound) {
-    Standard_Failure::Raise("OutOfRange");
-  }
-  const TopoDS_Shape& E = myOrientedShapeMap(index);
-  return E;
-} 
-//=======================================================================
-//function : Element
-//purpose  : 
-//=======================================================================
-  Standard_Integer BOP_BlockBuilder::Element (const TopoDS_Shape& E) const
-{
-  Standard_Boolean isbound = myOrientedShapeMap.Contains(E);
-  if (!isbound) {
-    Standard_Failure::Raise("OutOfRange");
-  }
-  
-  Standard_Integer I = myOrientedShapeMap.FindIndex(E);
-  return I;
-}
-
-//=======================================================================
-//function : ElementIsValid
-//purpose  : 
-//=======================================================================
-  Standard_Boolean BOP_BlockBuilder::ElementIsValid (const BOP_BlockIterator& BI) const 
-{  
-  Standard_Boolean isvalid, isbound = BI.More();
-  if (!isbound) {
-    return Standard_False;
-  }
-  Standard_Integer Sindex, isb;
-  
-  Sindex = BI.Value();
-  isb = myOrientedShapeMapIsValid.Find(Sindex);
-  isvalid = (isb == 1)? Standard_True: Standard_False;
-  
-  return isvalid;
-}
-//=======================================================================
-//function : ElementIsValid
-//purpose  : 
-//=======================================================================
-  Standard_Boolean BOP_BlockBuilder::ElementIsValid (const Standard_Integer Sindex) const
-{  
-  Standard_Boolean isvalid, isbound = myOrientedShapeMapIsValid.IsBound(Sindex);
-  if (!isbound) return Standard_False;
-
-  Standard_Integer isb = myOrientedShapeMapIsValid.Find(Sindex);
-  isvalid = (isb == 1)? Standard_True: Standard_False;
-  
-  return isvalid;
-}
-
-//=======================================================================
-//function : AddElement
-//purpose  : 
-//=======================================================================
-  Standard_Integer BOP_BlockBuilder::AddElement(const TopoDS_Shape& S) 
-{
-  Standard_Integer Sindex = myOrientedShapeMap.Add(S);
-  myOrientedShapeMapIsValid.Bind(Sindex, 1);
-
-  return Sindex;
-}
-
-//=======================================================================
-//function : SetValid
-//purpose  : 
-//=======================================================================
-  void BOP_BlockBuilder::SetValid(const BOP_BlockIterator& BI,
-                                 const Standard_Boolean isvalid)
-{
-  Standard_Boolean isbound = BI.More();
-  if (!isbound) {
-    return;
-  }
-  Standard_Integer Sindex, i;
-  Sindex = BI.Value();
-  i = (isvalid) ? 1 : 0;
-  myOrientedShapeMapIsValid.Bind(Sindex,i);
-}
-//=======================================================================
-//function : SetValid
-//purpose  : 
-//=======================================================================
-  void BOP_BlockBuilder::SetValid(const Standard_Integer Sindex,
-                                 const Standard_Boolean isvalid)
-{
-  Standard_Boolean isbound = myOrientedShapeMapIsValid.IsBound(Sindex);
-  if (!isbound) {
-    return;
-  }
-
-  Standard_Integer i = (isvalid) ? 1 : 0;
-  myOrientedShapeMapIsValid.Bind(Sindex,i);
-}
-
-//=======================================================================
-//function : CurrentBlockIsRegular
-//purpose  : 
-//=======================================================================
-  Standard_Boolean BOP_BlockBuilder::CurrentBlockIsRegular()
-{
-  Standard_Boolean b = Standard_False;
-  Standard_Integer i = myBlocksIsRegular.Value(myBlockIndex);
-  
-  if(i == 1) {
-    b = Standard_True;
-  }
-  return b;
-}
-
-
diff --git a/src/BOP/BOP_BlockIterator.cdl b/src/BOP/BOP_BlockIterator.cdl
deleted file mode 100755 (executable)
index 7737d77..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
--- Created on: 1993-02-25
--- Created by: Jean Yves LEBEY
--- Copyright (c) 1993-1999 Matra Datavision
--- Copyright (c) 1999-2012 OPEN CASCADE SAS
---
--- The content of this file is subject to the Open CASCADE Technology Public
--- License Version 6.5 (the "License"). You may not use the content of this file
--- except in compliance with the License. Please obtain a copy of the License
--- at http://www.opencascade.org and read it completely before using this file.
---
--- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
--- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
---
--- The Original Code and all software distributed under the License is
--- distributed on an "AS IS" basis, without warranty of any kind, and the
--- Initial Developer hereby disclaims all such warranties, including without
--- limitation, any warranties of merchantability, fitness for a particular
--- purpose or non-infringement. Please see the License for the specific terms
--- and conditions governing the rights and limitations under the License.
-
-
-class BlockIterator from BOP 
-
-    ---Purpose:  
-     
-    --  Auxiliary class to provide 
-    --  simple iteration on indexes that 
-    --  belongs to the integer range  [Lower,Upper]  
-    --  with increment =1 
-
-raises
-
-    NoMoreObject from Standard
-
-is
-
-    Create  
-       returns BlockIterator from BOP;
-       ---Purpose:  
-       --- Empty  Constructor 
-       ---
-    Create(Lower,Upper : Integer from Standard) 
-       returns BlockIterator from BOP;
-       ---Purpose:  
-       --- Creates an object with initial range 
-       --- of  [Lower,Upper]        
-       ---
-    
-    Initialize(me : in out)  
-       is static;
-       ---Purpose:  
-       --- Initialize an object with initial range 
-       --- of  [Lower,Upper]        
-       ---
-    More(me)  
-       returns Boolean from Standard  
-       is static;
-       ---Purpose:  
-       --- Support of Iteration 
-       ---
-    Next(me : in out)  
-       raises NoMoreObject  
-       is static;
-       ---Purpose:  
-       --- Support of Iteration 
-       ---
-    Value(me)  
-       returns Integer from Standard  
-       is static;
-       ---Purpose:  
-       --- Support of Iteration 
-       ---
-    Extent(me)  
-       returns Integer from Standard  
-       is static;
-       ---Purpose:  
-       --- Returns the extension=myUpper - myLower + 1;   
-       ---
-    
-fields
-
-    myLower : Integer from Standard;
-    myUpper : Integer from Standard;
-    myValue : Integer from Standard;
-
-end BlockIterator;
diff --git a/src/BOP/BOP_BlockIterator.cxx b/src/BOP/BOP_BlockIterator.cxx
deleted file mode 100755 (executable)
index b56a47f..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-// Created on: 1993-03-23
-// Created by: Jean Yves LEBEY
-// Copyright (c) 1993-1999 Matra Datavision
-// Copyright (c) 1999-2012 OPEN CASCADE SAS
-//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
-//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
-//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
-
-#include <BOP_BlockIterator.ixx>
-
-//=======================================================================
-//function : BOP_BlockIterator::BOP_BlockIterator
-//purpose  : 
-//=======================================================================
-BOP_BlockIterator::BOP_BlockIterator() 
-:
-  myLower(0),
-  myUpper(0),
-  myValue(1)
-{
-}
-
-//=======================================================================
-//function :  BOP_BlockIterator::BOP_BlockIterator
-//purpose  :
-//=======================================================================
-  BOP_BlockIterator::BOP_BlockIterator(const Standard_Integer Lower, 
-                                      const Standard_Integer Upper)
-:
-  myLower(Lower),
-  myUpper(Upper),
-  myValue(Lower)
-{
-}
-//=======================================================================
-//function : Initialize
-//purpose  : 
-//=======================================================================
-  void BOP_BlockIterator::Initialize()
-{
-  myValue = myLower;
-}
-//=======================================================================
-//function : More
-//purpose  : 
-//=======================================================================
-  Standard_Boolean BOP_BlockIterator::More() const
-{
-  Standard_Boolean b = (myValue <= myUpper);
-  return b;
-}
-//=======================================================================
-//function : Next
-//purpose  : 
-//=======================================================================
-  void BOP_BlockIterator::Next()
-{
-  myValue++;
-}
-//=======================================================================
-//function : Value
-//purpose  : 
-//=======================================================================
-  Standard_Integer BOP_BlockIterator::Value() const
-{
-  return myValue;
-}
-//=======================================================================
-//function : Extent
-//purpose  : 
-//=======================================================================
-  Standard_Integer BOP_BlockIterator::Extent() const
-{
-  if (myLower != 0) {
-    Standard_Integer n = myUpper - myLower + 1;
-    return n;
-  }
-  return 0;
-}
diff --git a/src/BOP/BOP_Builder.cdl b/src/BOP/BOP_Builder.cdl
deleted file mode 100755 (executable)
index 6e7affa..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
--- Created on: 2001-03-29
--- Created by: Peter KURNEV
--- Copyright (c) 2001-2012 OPEN CASCADE SAS
---
--- The content of this file is subject to the Open CASCADE Technology Public
--- License Version 6.5 (the "License"). You may not use the content of this file
--- except in compliance with the License. Please obtain a copy of the License
--- at http://www.opencascade.org and read it completely before using this file.
---
--- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
--- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
---
--- The Original Code and all software distributed under the License is
--- distributed on an "AS IS" basis, without warranty of any kind, and the
--- Initial Developer hereby disclaims all such warranties, including without
--- limitation, any warranties of merchantability, fitness for a particular
--- purpose or non-infringement. Please see the License for the specific terms
--- and conditions governing the rights and limitations under the License.
-
-
-
-deferred  class Builder from BOP 
-
-       ---Purpose:  
-       
-        --  The Root class to perform a Boolean Operations (BO)
-
-uses 
-
-    Shape from TopoDS, 
-    Operation from BOP, 
-    HistoryCollector from BOP,
-    ShapeEnum from TopAbs, 
-    DSFiller  from BOPTools,
-    PDSFiller from BOPTools, 
-     
-    IndexedDataMapOfShapeListOfShape from TopTools, 
-    ListOfShape       from TopTools, 
-    IndexedMapOfShape from TopTools 
-
---raises
-
-is  
-
-    Initialize 
-       returns Builder from BOP; 
-    ---Purpose:  
-    --- Empty constructor;
-    ---            
-    SetShapes       (me:out; 
-                    aS1: Shape from TopoDS;             
-                    aS2: Shape from TopoDS);  
-    ---Purpose:  
-    --  Set shapes (arguments) to perform BO        
-    ---
-    SetOperation    (me:out; 
-                    anOp:Operation from BOP); 
-    ---Purpose:  
-    --  Set type of the BO to perform               
-    -- 
-    SetManifoldFlag (me:out; 
-                     aFlag:Boolean from Standard);  
-    ---Purpose: Set the flag to allow the result  
-    --          be manifold or non-manifold (not used) 
-    --
-    Shape1  (me) 
-       returns Shape from TopoDS; 
-    ---C++:  return const &  
-    ---Purpose:   
-    --  Selector
-    --
-    Shape2  (me) 
-       returns Shape from TopoDS; 
-    ---C++:  return const &   
-    ---Purpose:   
-    --  Selector
-    --
-    Operation  (me) 
-       returns Operation from BOP; 
-    ---Purpose:   
-    --  Selector
-    -- 
-    ManifoldFlag(me) 
-       returns  Boolean from Standard; 
-    ---Purpose:   
-    --  Selector
-    -- 
-    IsDone(me) 
-       returns  Boolean  from  Standard ;       
-    ---Purpose:   
-    -- Selector
-    -- 
-    ErrorStatus (me) 
-       returns  Integer  from  Standard;        
-    ---Purpose:   
-    --  Selector
-    --
-    Result(me) 
-       returns Shape from TopoDS ;
-    ---C++:  return const &  
-    ---Purpose:   
-    --  Returns the result of the BO      
-    -- 
-    Do    (me:out) 
-       is virtual;    
-    ---Purpose:   
-    --           Does the BO from the beggining to the end, 
-    --           i.e.  create new DataStructure, DSFiller,         
-    --           compute all  interferences, compute states, 
-    --           build result etc   
-    --
-    DoWithFiller  (me:out; 
-                  aDSF: DSFiller from BOPTools) 
-       is virtual;      
-    ---Purpose:   
-    --  Does the BO using existing Filler to the end        
-    --    
-    BuildResult (me:out) 
-       is  virtual;     
-    ---Purpose:   
-    --  Constructs the final result of the BO 
-    --   
-    Destroy (me: in out) 
-       is  virtual;     
-    ---C++: alias "Standard_EXPORT virtual ~BOP_Builder(){Destroy();}" 
-    ---Purpose:   
-    --  Destructor 
-    --     
-    SortTypes  (myclass; 
-               aType1:out ShapeEnum from TopAbs;  
-               aType2:out ShapeEnum from TopAbs);  
-    ---Purpose:   
-    --  Sort types of shapes as integers in increasing order        
-    -- 
-    Modified (me;  
-               aS : Shape from TopoDS)  
-       returns ListOfShape from TopTools; 
-    ---C++:  return const & 
-    ---Purpose:   
-    -- Returns the list  of shapes modified from the shape aS      
-    --  
-    IsDeleted(me; 
-               aS : Shape from TopoDS) 
-       returns  Boolean from Standard;  
-    ---Purpose:   
-    -- Returns TRUE if the result does  not contain the shape aS        
-    --   
-    FillModified(me:out) 
-       is  protected; 
-    ---Purpose:   
-    -- Fill the list  of shapes modified from the shape aS.    
-    -- For Internal usage 
-    --              
-    FillModified(me:out; 
-               aS : Shape from TopoDS; 
-               aL : ListOfShape from TopTools) 
-       is  protected;   
-    ---Purpose:   
-    -- Fill the list  of shapes modified from the shape aS. 
-    -- For Internal usage    
-    --  
-    FillModified(me:out; 
-               aE : Shape from TopoDS; 
-               aSp: Shape from TopoDS) 
-       is  protected;   
-    ---Purpose:   
-    -- Fill the list  of shapes modified from the shape aS    
-    -- For Internal usage   
-    -- 
-    SectionEdges (me)  
-       returns ListOfShape from TopTools; 
-    ---C++:  return const & 
-    ---Purpose:   
-    -- Returns the list of shapes that are parts of BO "Section" 
-    -- for  given arguments. 
-    -- For Internal usage       
-    --   
-
-    SetHistoryCollector(me: in out; theHistory: HistoryCollector from BOP)
-       is virtual;
-
-    GetHistoryCollector(me)
-       returns HistoryCollector from BOP;
-
-fields 
-
-    myShape1       : Shape from TopoDS      
-       is protected;  
-    myShape2       : Shape from TopoDS      
-       is protected;   
-    myOperation    : Operation from BOP     
-       is protected; 
-    myManifoldFlag : Boolean from Standard  
-       is protected;        
-    myIsDone       : Boolean from Standard  
-       is protected;             
-    myErrorStatus  : Integer from Standard  
-       is protected;    
-    myResult       : Shape   from TopoDS    
-       is protected;
-    myDraw         : Integer   from Standard  
-       is protected; 
-    myDSFiller     : PDSFiller from BOPTools  
-       is  protected; 
-    myResultMap    : IndexedMapOfShape from TopTools   
-       is  protected; 
-    myModifiedMap  : IndexedDataMapOfShapeListOfShape from TopTools   
-       is  protected; 
-    myEmptyList    : ListOfShape from TopTools   
-       is  protected;    
-    mySectionEdges : ListOfShape from TopTools   
-       is  protected; 
-
-    myHistory: HistoryCollector from BOP
-       is protected;
-end Builder;
-
diff --git a/src/BOP/BOP_Builder.cxx b/src/BOP/BOP_Builder.cxx
deleted file mode 100755 (executable)
index 5061849..0000000
+++ /dev/null
@@ -1,390 +0,0 @@
-// Created on: 2001-03-29
-// Created by: Peter KURNEV
-// Copyright (c) 2001-2012 OPEN CASCADE SAS
-//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
-//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
-//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
-
-
-#include <BOP_Builder.ixx>
-
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TopExp.hxx>
-
-#include <BooleanOperations_ShapesDataStructure.hxx>
-
-#include <BOPTools_SplitShapesPool.hxx>
-#include <BOPTools_CommonBlockPool.hxx>
-#include <BOPTools_ListOfPaveBlock.hxx>
-#include <BOPTools_ListOfCommonBlock.hxx>
-#include <TopTools_IndexedMapOfShape.hxx>
-#include <BOPTools_ListIteratorOfListOfCommonBlock.hxx>
-#include <BOPTools_CommonBlock.hxx>
-#include <BOPTools_PaveBlock.hxx>
-#include <BOPTools_ListIteratorOfListOfPaveBlock.hxx>
-
-//=======================================================================
-// function: BOP_Builder::BOP_Builder
-// purpose: 
-//=======================================================================
-BOP_Builder::BOP_Builder() 
-: myOperation(BOP_UNKNOWN),
-  myManifoldFlag(Standard_False),
-  myIsDone(Standard_False),
-  myErrorStatus(1),
-  myDraw(0)
-{
-}
-//=======================================================================
-// function: Destroy
-// purpose: 
-//=======================================================================
-  void BOP_Builder::Destroy()
-{
-}
-
-//=======================================================================
-// function: SetShapes
-// purpose: 
-//=======================================================================
-  void BOP_Builder::SetShapes (const TopoDS_Shape& aS1,
-                              const TopoDS_Shape& aS2)
-{
-  myShape1=aS1;
-  myShape2=aS2;
-}
-//=======================================================================
-// function: SetOperation
-// purpose: 
-//=======================================================================
-  void BOP_Builder::SetOperation (const BOP_Operation anOp) 
-{
-  myOperation=anOp;
-}
-        
-
-//=======================================================================
-// function: SetManifoldFlag
-// purpose: 
-//=======================================================================
-  void BOP_Builder::SetManifoldFlag (const Standard_Boolean aFlag)
-{
-  myManifoldFlag=aFlag;
-}
-//=======================================================================
-// function: Shape1
-// purpose: 
-//=======================================================================
-  const TopoDS_Shape& BOP_Builder::Shape1()const
-{
-  return myShape1;
-}
-
-//=======================================================================
-// function: Shape2
-// purpose: 
-//=======================================================================
-  const TopoDS_Shape& BOP_Builder::Shape2()const
-{
-  return myShape2;
-}
-//=======================================================================
-// function: Operation
-// purpose: 
-//=======================================================================
-  BOP_Operation BOP_Builder::Operation () const
-{
-  return myOperation;
-}
-       
-//=======================================================================
-// function: ManifoldFlag
-// purpose: 
-//=======================================================================
-  Standard_Boolean BOP_Builder::ManifoldFlag () const 
-{
-  return myManifoldFlag;
-}
-//=======================================================================
-// function: IsDone
-// purpose: 
-//=======================================================================
-  Standard_Boolean BOP_Builder::IsDone() const 
-{
-  return myIsDone;
-}
-//=======================================================================
-// function: ErrorStatus
-// purpose: 
-//=======================================================================
-  Standard_Integer BOP_Builder::ErrorStatus() const 
-{
-  return myErrorStatus;
-}
-//=======================================================================
-// function: Result
-// purpose: 
-//=======================================================================
-  const TopoDS_Shape& BOP_Builder::Result()const
-{
-  return myResult;
-}
-
-//=======================================================================
-// function: Do
-// purpose: 
-//=======================================================================
-  void BOP_Builder::Do()
-{
-}
-//=======================================================================
-// function: DoDoWithFiller
-// purpose: 
-//=======================================================================
-  void BOP_Builder::DoWithFiller(const BOPTools_DSFiller& )
-{
-} 
-
-//=======================================================================
-// function: BuildResult
-// purpose: 
-//=======================================================================
-  void BOP_Builder::BuildResult()
-{
-}
-//
-//
-//=======================================================================
-// function: FillModified
-// purpose: 
-//=======================================================================
-  void BOP_Builder::FillModified()
-{
-  //
-  // Prepare myResultMap
-  myResultMap.Clear();
-  TopExp::MapShapes(myResult, TopAbs_FACE, myResultMap);
-  TopExp::MapShapes(myResult, TopAbs_EDGE, myResultMap);
-  //
-  // Fill Modified for Edges
-  Standard_Integer i, aNbSources, aNbPaveBlocks, nSp, nFace;
-  //
-  const BooleanOperations_ShapesDataStructure& aDS=myDSFiller->DS();
-  const BOPTools_SplitShapesPool& aSplitShapesPool= myDSFiller->SplitShapesPool();
-  const BOPTools_CommonBlockPool& aCommonBlockPool= myDSFiller->CommonBlockPool();
-  //
-  aNbSources=aDS.NumberOfSourceShapes();
-  for (i=1; i<=aNbSources; i++) {
-    
-    if (aDS.GetShapeType(i) != TopAbs_EDGE){
-      continue;
-    }
-    //
-    const TopoDS_Shape& aE=aDS.Shape(i);
-    //
-    const BOPTools_ListOfPaveBlock& aSplitEdges=aSplitShapesPool(aDS.RefEdge(i));
-    const BOPTools_ListOfCommonBlock& aCBlocks =aCommonBlockPool(aDS.RefEdge(i));
-    //
-    aNbPaveBlocks=aSplitEdges.Extent();
-    if (!aNbPaveBlocks) {
-      continue;
-    }
-    //
-    TopTools_IndexedMapOfShape aM;
-    
-    BOPTools_ListIteratorOfListOfCommonBlock aCBIt(aCBlocks);
-    for (; aCBIt.More(); aCBIt.Next()) {
-      BOPTools_CommonBlock& aCB=aCBIt.Value();
-      //
-      nFace=aCB.Face();
-      //
-      if (nFace) {
-       BOPTools_PaveBlock& aPB=aCB.PaveBlock1(i);
-       nSp=aPB.Edge();
-       const TopoDS_Shape& aSp=aDS.Shape(nSp);
-       //
-       if (aM.Contains(aSp)) {
-         continue;
-       }
-       aM.Add(aSp);
-       //
-       if (myResultMap.Contains(aSp)) {
-         FillModified(aE, aSp);
-       }
-      }
-      //
-      else {
-       const BOPTools_PaveBlock& aPB=aCB.PaveBlock1();
-       nSp=aPB.Edge();
-       const TopoDS_Shape& aSp=aDS.Shape(nSp);
-       //
-       if (aM.Contains(aSp)) {
-         continue;
-       }
-       aM.Add(aSp);
-       //
-       if (myResultMap.Contains(aSp)) {
-         FillModified(aE, aSp);
-       }
-      }
-    } // for (; aCBIt.More(); aCBIt.Next())
-    
-    
-    BOPTools_ListIteratorOfListOfPaveBlock aPBIt(aSplitEdges);
-    for (; aPBIt.More(); aPBIt.Next()) {
-      const BOPTools_PaveBlock& aPB=aPBIt.Value();
-      nSp=aPB.Edge();
-      const TopoDS_Shape& aSp=aDS.Shape(nSp);
-      //
-      if (aM.Contains(aSp)) {
-       continue;
-      }
-      aM.Add(aSp);
-      //
-      if (myResultMap.Contains(aSp)) {
-       FillModified(aE, aSp);
-      }
-    }// for (; aPBIt.More(); aPBIt.Next())
-  }
-}
-//=======================================================================
-// function: FillModified
-// purpose: 
-//=======================================================================
-  void BOP_Builder::FillModified(const TopoDS_Shape& aE,
-                                const TopoDS_Shape& aSp)
-{
-  if (myModifiedMap.Contains(aE)) {
-    TopTools_ListOfShape& aLM=myModifiedMap.ChangeFromKey(aE);
-    aLM.Append(aSp);
-  }
-  else {
-    TopTools_ListOfShape aLM;
-    aLM.Append(aSp);
-    myModifiedMap.Add(aE, aLM);
-  }
-}
-//=======================================================================
-// function: FillModified
-// purpose: 
-//=======================================================================
-  void BOP_Builder::FillModified(const TopoDS_Shape& aS,
-                                const TopTools_ListOfShape& aLFx)
-{
-  TopTools_ListIteratorOfListOfShape anIt(aLFx);
-  //
-  if (myModifiedMap.Contains(aS)) {
-    TopTools_ListOfShape& aLM=myModifiedMap.ChangeFromKey(aS);
-    anIt.Initialize(aLFx);
-    for (; anIt.More(); anIt.Next()) {
-      const TopoDS_Shape& aFx=anIt.Value();
-      aLM.Append(aFx);
-    }
-  }
-  
-  else {
-    TopTools_ListOfShape aLM;
-    anIt.Initialize(aLFx);
-    for (; anIt.More(); anIt.Next()) {
-      const TopoDS_Shape& aFx=anIt.Value();
-      aLM.Append(aFx);
-    }
-    myModifiedMap.Add(aS, aLM);
-  }
-}
-//=======================================================================
-// function: Modified
-// purpose: 
-//=======================================================================
-  const TopTools_ListOfShape& BOP_Builder::Modified(const TopoDS_Shape& aS)const
-{
-  if (myModifiedMap.Contains(aS)) {
-    const TopTools_ListOfShape& aLM=myModifiedMap.FindFromKey(aS);
-    return aLM;
-  }
-  else {
-    return myEmptyList;
-  }
-}
-//=======================================================================
-// function: IsDeleted
-// purpose: 
-//=======================================================================
-  Standard_Boolean BOP_Builder::IsDeleted(const TopoDS_Shape& aS)const
-{
-  Standard_Boolean bFlag=Standard_False;
-  //
-  if (myResultMap.Contains(aS)) {
-    return bFlag;
-  }
-  //
-  const TopTools_ListOfShape& aLM=Modified(aS);
-  if (aLM.Extent()) {
-    return bFlag;
-  }
-  //
-  return !bFlag;
-}
-
-
-//=======================================================================
-//function : SortTypes
-//purpose  : 
-//=======================================================================
-  void BOP_Builder::SortTypes(TopAbs_ShapeEnum& aType1,
-                             TopAbs_ShapeEnum& aType2)
-{ 
-  Standard_Integer iT1, iT2;
-
-  if (aType1==aType2)
-    return;
-  
-  iT1=(Standard_Integer) aType1;
-  iT2=(Standard_Integer) aType2;
-  
-  if (iT1 < iT2) {
-    aType1=(TopAbs_ShapeEnum) iT2;
-    aType2=(TopAbs_ShapeEnum) iT1;
-  }
-}
-
-//=======================================================================
-// function: SectionEdges
-// purpose: 
-//=======================================================================
-  const TopTools_ListOfShape& BOP_Builder::SectionEdges()const
-{
-  return mySectionEdges;
-}
-
-
-//=======================================================================
-// function: SetHistoryCollector
-// purpose: 
-//=======================================================================
-void BOP_Builder::SetHistoryCollector(const Handle(BOP_HistoryCollector)& theHistory) 
-{
-  myHistory = theHistory;
-}
-
-//=======================================================================
-// function: GetHistoryCollector
-// purpose: 
-//=======================================================================
-Handle(BOP_HistoryCollector) BOP_Builder::GetHistoryCollector() const
-{
-  return myHistory;
-}
diff --git a/src/BOP/BOP_BuilderTools.cdl b/src/BOP/BOP_BuilderTools.cdl
deleted file mode 100755 (executable)
index add4e24..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
--- Created on: 2001-11-02
--- Created by: Peter KURNEV
--- Copyright (c) 2001-2012 OPEN CASCADE SAS
---
--- The content of this file is subject to the Open CASCADE Technology Public
--- License Version 6.5 (the "License"). You may not use the content of this file
--- except in compliance with the License. Please obtain a copy of the License
--- at http://www.opencascade.org and read it completely before using this file.
---
--- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
--- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
---
--- The Original Code and all software distributed under the License is
--- distributed on an "AS IS" basis, without warranty of any kind, and the
--- Initial Developer hereby disclaims all such warranties, including without
--- limitation, any warranties of merchantability, fitness for a particular
--- purpose or non-infringement. Please see the License for the specific terms
--- and conditions governing the rights and limitations under the License.
-
-
-
-class BuilderTools from BOP 
-
-    ---Purpose: 
-       --  Some  handy tools used by classes    
-       --  BOP_ShellShell, 
-       --  BOP_ShellSolid, 
-       --  BOP_SolidSolid  
-       --  to build a result  
-
-uses
-  
-    IndexedMapOfInteger from TColStd,  
-     
-    State     from TopAbs,  
-    ShapeEnum from TopAbs, 
-     
-    Face from TopoDS, 
-    Edge from TopoDS,   
-     
-    ListOfShape from TopTools, 
-      
-    StateOfShape from BooleanOperations, 
-      
-    IndexedDataMapOfIntegerIndexedMapOfInteger from BOPTColStd,        
-     
-    CArray1OfSSInterference from BOPTools,  
-     
-    Operation            from BOP,
-    ListOfConnexityBlock from BOP     
-    
-    
-is
-
-    StateToCompare(myclass; 
-           iRank :Integer from Standard; 
-           anOp  :Operation from BOP) 
-       returns StateOfShape from BooleanOperations;  
-    
-    ToReverseSection(myclass; 
-           iRank :Integer from Standard; 
-           anOp  :Operation from BOP) 
-       returns Boolean from Standard;   
-        
-    ToReverseFace(myclass; 
-           iRank :Integer from Standard; 
-           anOp  :Operation from BOP) 
-       returns Boolean from Standard;  
-        
-    OrientSectionEdgeOnF1(myclass; 
-           aF1   :Face from TopoDS; 
-           aF2   :Face from TopoDS;  
-           iRank :Integer from Standard;  
-           anOp  :Operation from BOP;
-           aE    :out Edge from TopoDS); 
-        
-    IsSameDomainFaceWithF1(myclass; 
-           nF1 :Integer from Standard; 
-           nF2 :Integer from Standard; 
-           aFFM:IndexedMapOfInteger from TColStd; 
-           aFFs:out CArray1OfSSInterference from BOPTools)  
-       returns Boolean from Standard;     
-
-    IsPartIN2DToKeep(myclass;  
-           aSt   :State from TopAbs;
-           iRank :Integer from Standard;  
-           anOp  :Operation from BOP)  
-       returns Boolean from Standard;           
-
-    IsPartOn2dToKeep(myclass;  
-           aSt   :State from TopAbs;
-           iRank :Integer from Standard;  
-           anOp  :Operation from BOP)  
-       returns Boolean from Standard;  
-        
-    DoMap(myclass;  
-           aFFs  :out  CArray1OfSSInterference from BOPTools; 
-           aFFMap:out  IndexedDataMapOfIntegerIndexedMapOfInteger from BOPTColStd);      
-
-    MakeConnexityBlocks(myclass;  
-           aLE        :  ListOfShape from TopTools;  
-           aType      :  ShapeEnum   from TopAbs;  
-           aLConBlks  : out ListOfConnexityBlock from BOP); 
-
-end BuilderTools;
diff --git a/src/BOP/BOP_BuilderTools.cxx b/src/BOP/BOP_BuilderTools.cxx
deleted file mode 100755 (executable)
index 93a027f..0000000
+++ /dev/null
@@ -1,427 +0,0 @@
-// Created on: 2001-11-02
-// Created by: Peter KURNEV
-// Copyright (c) 2001-2012 OPEN CASCADE SAS
-//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
-//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
-//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
-
-#include <BOP_BuilderTools.ixx>
-
-#include <TColStd_IndexedMapOfInteger.hxx>
-
-#include <gp_Dir.hxx>
-
-#include <BRepAdaptor_Surface.hxx>
-#include <GeomAbs_SurfaceType.hxx>
-
-#include <TopAbs_State.hxx>
-
-#include <TopoDS_Shape.hxx>
-#include <TopExp.hxx>
-#include <TopExp_Explorer.hxx>
-
-#include <TopTools_ListOfShape.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TopTools_IndexedMapOfOrientedShape.hxx>
-#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
-#include <TopTools_IndexedMapOfShape.hxx>
-
-#include <BooleanOperations_StateOfShape.hxx>
-
-#include <BOPTools_Tools3D.hxx>
-#include <BOPTools_SSInterference.hxx>
-
-#include <BOP_ConnexityBlock.hxx>
-#include <BOP_ListOfConnexityBlock.hxx> 
-
-//=======================================================================
-// function: StateToCompare
-// purpose: 
-//=======================================================================
-BooleanOperations_StateOfShape 
-    BOP_BuilderTools::StateToCompare(const Standard_Integer iRank,
-                                    const BOP_Operation anOp)
-{
-  BooleanOperations_StateOfShape aSt=BooleanOperations_UNKNOWN;
-  
-  if (iRank==1) {
-    if (anOp==BOP_COMMON) {
-      aSt=BooleanOperations_IN;
-    }
-    if (anOp==BOP_FUSE) {
-      aSt=BooleanOperations_OUT;
-    }
-    if (anOp==BOP_CUT) {
-      aSt=BooleanOperations_OUT;
-    }
-    if (anOp==BOP_CUT21) {
-      aSt=BooleanOperations_IN;
-    }
-  }
-
-  if (iRank==2) {
-    if (anOp==BOP_COMMON) {
-      aSt=BooleanOperations_IN;
-    }
-    if (anOp==BOP_FUSE) {
-      aSt=BooleanOperations_OUT;
-    }
-    if (anOp==BOP_CUT) {
-      aSt=BooleanOperations_IN;
-    }
-    if (anOp==BOP_CUT21) {
-      aSt=BooleanOperations_OUT;
-    }
-  }
-  return aSt;
-}
-//=======================================================================
-// function: ToReverseSection
-// purpose: 
-//=======================================================================
-  Standard_Boolean BOP_BuilderTools::ToReverseSection(const Standard_Integer iRank,
-                                                     const BOP_Operation anOp)
-{
-  Standard_Boolean bFlag=Standard_False;
-
-  if (iRank==1) {
-    if (anOp==BOP_FUSE || anOp==BOP_CUT) {
-      bFlag=Standard_True;
-    }
-  }
-
-  if (iRank==2) {
-    if (anOp==BOP_FUSE || anOp==BOP_CUT21) {
-       bFlag=Standard_True;
-    }
-  }
-  return bFlag;
-}
-//=======================================================================
-// function: ToReverseFace
-// purpose: 
-//=======================================================================
-  Standard_Boolean BOP_BuilderTools::ToReverseFace(const Standard_Integer iRank,
-                                                  const BOP_Operation anOp)
-{
-  Standard_Boolean bFlag=Standard_False;
-
-  if (iRank==1) {
-    if (anOp==BOP_CUT21) {
-      bFlag=Standard_True;
-    }
-  }
-
-  if (iRank==2) {
-    if (anOp==BOP_CUT) {
-       bFlag=Standard_True;
-    }
-  }
-  return bFlag;
-}
-
-//=======================================================================
-// function: OrientSectionEdgeOnF1
-// purpose: 
-//=======================================================================
-  void BOP_BuilderTools::OrientSectionEdgeOnF1(const TopoDS_Face& aF1,
-                                              const TopoDS_Face& aF2,
-                                              const Standard_Integer iRankF1,
-                                              const BOP_Operation anOperation,
-                                              TopoDS_Edge& aE)
-{
-  TopAbs_Orientation anOr;
-  Standard_Boolean bToReverseSection;
-  
-  anOr=BOPTools_Tools3D::EdgeOrientation(aE, aF1, aF2);
-  aE.Orientation(anOr);
-  bToReverseSection=BOP_BuilderTools::ToReverseSection(iRankF1, anOperation);
-  if (bToReverseSection) {
-    aE.Reverse();
-  }
-}
-
-//=======================================================================
-// function: IsSameDomainFaceWithF1
-// purpose: 
-//=======================================================================
-  Standard_Boolean
-    BOP_BuilderTools::IsSameDomainFaceWithF1(const Standard_Integer nF1,
-                                            const Standard_Integer nF2,
-                                            const TColStd_IndexedMapOfInteger& aFFIndicesMap,
-                                            BOPTools_CArray1OfSSInterference& aFFs)
-{
-  Standard_Boolean bIsSDF, bYes;
-  Standard_Integer j, aNbj, iFFx, nFx;
-  
-  bYes=Standard_False;
-  aNbj=aFFIndicesMap.Extent();
-  
-  for (j=1; j<=aNbj; j++) {
-    iFFx=aFFIndicesMap(j);
-    BOPTools_SSInterference& aFFx=aFFs(iFFx);
-    bIsSDF=aFFx.IsTangentFaces();
-    if (bIsSDF) {
-      nFx=aFFx.OppositeIndex(nF1);
-      if (nFx==nF2) {
-       return !bYes;
-      }
-    }
-  }
-  return bYes;
-}
-
-//=======================================================================
-// function: IsPartIN2DToKeep
-// purpose: 
-//=======================================================================
-  Standard_Boolean 
-    BOP_BuilderTools::IsPartIN2DToKeep(const TopAbs_State aST1, 
-                                      const Standard_Integer iRankF1,
-                                      const BOP_Operation anOp)
-{
-  
-
-  Standard_Boolean bRetFlag= (aST1==TopAbs_OUT);
-  //
-  // Same oriented 
-  if (bRetFlag) {
-    if (anOp==BOP_CUT && iRankF1==2) {
-      return !bRetFlag;
-    }
-
-    if (anOp==BOP_CUT21 && iRankF1==1) {
-      return !bRetFlag;
-    }
-    
-    if (anOp==BOP_COMMON && iRankF1==2) {
-      return !bRetFlag;
-    }
-
-    if (anOp==BOP_COMMON && iRankF1==1) {
-      return !bRetFlag;
-    }
-
-    return bRetFlag;
-  }
-  //
-  // Different oriented
-  else if (!bRetFlag) {
-    if (anOp==BOP_FUSE) {
-      return bRetFlag;
-    }
-  
-    if (anOp==BOP_CUT && iRankF1==1) {
-      return bRetFlag;
-    }
-  
-    if (anOp==BOP_CUT21 && iRankF1==2) {
-      return bRetFlag;
-    }
-    return !bRetFlag;
-  }
-  return !bRetFlag;
-}
-//=======================================================================
-// function: IsPartOn2dToKeep
-// purpose: 
-//=======================================================================
-  Standard_Boolean 
-    BOP_BuilderTools::IsPartOn2dToKeep(const TopAbs_State aST1,
-                                      const Standard_Integer iRankF1,
-                                      const BOP_Operation anOp)
-{
-  Standard_Boolean bRetFlag=Standard_False;
-  //
-  // 1 OUT
-  if (aST1==TopAbs_OUT) {
-    if (anOp==BOP_FUSE) {
-      bRetFlag=Standard_True;
-    }
-    if (iRankF1==1) {
-      if (anOp==BOP_CUT) {
-       bRetFlag=Standard_True;
-      }
-    }
-    if (iRankF1==2) {
-      if (anOp==BOP_CUT21) {
-       bRetFlag=Standard_True;
-      }
-    }
-  }
-  //
-  // 2 IN
-  if (aST1==TopAbs_IN) {
-    if (anOp==BOP_COMMON) {
-      bRetFlag=Standard_True;
-    }
-    if (iRankF1==2) {
-      if (anOp==BOP_CUT) {
-       bRetFlag=Standard_True;
-      }
-    }
-    if (iRankF1==1) {
-      if (anOp==BOP_CUT21) {
-       bRetFlag=Standard_True;
-      }
-    }
-  }
-  return bRetFlag;
-}
-
-//=======================================================================
-// function: DoMap
-// purpose: 
-//=======================================================================
-  void BOP_BuilderTools::DoMap
-    (BOPTools_CArray1OfSSInterference& aFFs,
-     BOPTColStd_IndexedDataMapOfIntegerIndexedMapOfInteger& aFFMap)
-{
-  Standard_Integer i, aNb, nF1, nF2;
-  //
-  // Intersection Map for Faces
-  
-  aFFMap.Clear();
-  TColStd_IndexedMapOfInteger aFFIndices;
-
-  aNb=aFFs.Extent();
-  for (i=1; i<=aNb; i++) {
-    BOPTools_SSInterference& aFF=aFFs(i);
-    // Faces
-    nF1=aFF.Index1();
-    nF2=aFF.Index2();
-    // nF1
-    if (!aFFMap.Contains(nF1)) {
-      aFFIndices.Clear();
-      aFFIndices.Add(i);
-      aFFMap.Add(nF1, aFFIndices);
-    }
-    else {
-      TColStd_IndexedMapOfInteger& aMF=aFFMap.ChangeFromKey(nF1);
-      aMF.Add(i);
-    }
-    // nF2
-    if (!aFFMap.Contains(nF2)) {
-      aFFIndices.Clear();
-      aFFIndices.Add(i);
-      aFFMap.Add(nF2, aFFIndices);
-    }
-    else {
-      TColStd_IndexedMapOfInteger& aMF=aFFMap.ChangeFromKey(nF2);
-      aMF.Add(i);
-    }
-  }
-}
-
-//=======================================================================
-//
-static 
-  void Pathx(const TopoDS_Shape& aVx,
-            const TopoDS_Shape& aEx,
-            const TopAbs_ShapeEnum aType2,
-            const TopTools_IndexedDataMapOfShapeListOfShape& aVEMap,
-            TopTools_IndexedMapOfOrientedShape& aProcessedEdges,
-            TopTools_IndexedMapOfOrientedShape& aCBMap);
-
-//=======================================================================
-// function: MakeConnexityBlocks
-// purpose: 
-//=======================================================================
-  void BOP_BuilderTools::MakeConnexityBlocks(const TopTools_ListOfShape& aLEIn,
-                                            const TopAbs_ShapeEnum aType,
-                                            BOP_ListOfConnexityBlock& aLConBlks)
-{
-  Standard_Integer i, aNbV, aNbE;
-  TopTools_IndexedDataMapOfShapeListOfShape aVEMap;
-  TopTools_IndexedMapOfOrientedShape aProcessedEdges, aCBMap;
-  TopAbs_ShapeEnum aType2;
-  //
-  if (aType==TopAbs_EDGE) {
-    aType2=TopAbs_VERTEX;
-  }
-  else if (aType==TopAbs_FACE) {
-    aType2=TopAbs_EDGE;
-  }
-  else {
-    return;
-  }
-  //
-  TopTools_ListIteratorOfListOfShape anIt(aLEIn);
-  //
-  for (; anIt.More(); anIt.Next()) {
-    const TopoDS_Shape& aE=anIt.Value();
-    TopExp::MapShapesAndAncestors(aE, aType2, aType, aVEMap);
-  }
-  //
-  aNbV=aVEMap.Extent();
-  for (i=1; i<=aNbV; i++) {
-    aCBMap.Clear();
-    
-    const TopoDS_Shape& aV=aVEMap.FindKey(i);
-    
-    const TopTools_ListOfShape& aLE=aVEMap(i);
-    anIt.Initialize(aLE);
-    for (; anIt.More(); anIt.Next()) {
-      const TopoDS_Shape& aE=anIt.Value();
-      if (!aProcessedEdges.Contains(aE)) {
-       aProcessedEdges.Add(aE);
-       aCBMap.Add(aE);
-       Pathx (aV, aE, aType2, aVEMap, aProcessedEdges, aCBMap);
-      }
-    }
-    aNbE=aCBMap.Extent();
-    if (aNbE) {
-      BOP_ConnexityBlock aConnexityBlock;
-      aConnexityBlock.SetShapes(aCBMap);
-      aLConBlks.Append(aConnexityBlock);
-    }
-  }
-}
-
-//=======================================================================
-// function: Pathx
-// purpose: 
-//=======================================================================
-void Pathx(const TopoDS_Shape& aVx,
-          const TopoDS_Shape& aEx,
-          const TopAbs_ShapeEnum aType2,
-          const TopTools_IndexedDataMapOfShapeListOfShape& aVEMap,
-          TopTools_IndexedMapOfOrientedShape& aProcessedEdges,
-          TopTools_IndexedMapOfOrientedShape& aCBMap)
-{
-  TopExp_Explorer anExp(aEx, aType2);
-  for (; anExp.More(); anExp.Next()){
-    const TopoDS_Shape& aV=anExp.Current();
-    
-    if (aV.IsSame(aVx)){
-      continue;
-    }
-    
-    const TopTools_ListOfShape& aLE=aVEMap.FindFromKey(aV);
-    TopTools_ListIteratorOfListOfShape anIt(aLE);
-    for (; anIt.More(); anIt.Next()) {
-      const TopoDS_Shape& aE=anIt.Value();
-      if (!aProcessedEdges.Contains(aE)) {
-       aProcessedEdges.Add(aE);
-       aCBMap.Add(aE);
-       
-       Pathx (aV, aE, aType2, aVEMap, aProcessedEdges, aCBMap);
-      }
-    }
-  }
-}
-
-
diff --git a/src/BOP/BOP_CheckResult.cdl b/src/BOP/BOP_CheckResult.cdl
deleted file mode 100755 (executable)
index eb37314..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
--- Created on: 2004-09-03
--- Created by: Oleg FEDYAEV
--- Copyright (c) 2004-2012 OPEN CASCADE SAS
---
--- The content of this file is subject to the Open CASCADE Technology Public
--- License Version 6.5 (the "License"). You may not use the content of this file
--- except in compliance with the License. Please obtain a copy of the License
--- at http://www.opencascade.org and read it completely before using this file.
---
--- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
--- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
---
--- The Original Code and all software distributed under the License is
--- distributed on an "AS IS" basis, without warranty of any kind, and the
--- Initial Developer hereby disclaims all such warranties, including without
--- limitation, any warranties of merchantability, fitness for a particular
--- purpose or non-infringement. Please see the License for the specific terms
--- and conditions governing the rights and limitations under the License.
-
-
-class CheckResult from BOP
-    ---Purpose: contains information about faulty shapes and faulty types
-    ---         can't be processed by Boolean Operations
-
-uses
-
-    Shape       from TopoDS,
-    ListOfShape from TopTools,
-    CheckStatus from BOP
-
-is
-
-    Create
-       returns CheckResult;
-    ---Purpose: empty constructor
-    
-    SetShape1(me: in out; TheShape : Shape from TopoDS);
-    ---Purpose: sets ancestor shape (object) for faulty sub-shapes
-    
-    AddFaultyShape1(me: in out; TheShape: Shape from TopoDS);
-    ---Purpose: adds faulty sub-shapes from object to a list
-    
-    SetShape2(me: in out; TheShape: Shape from TopoDS);
-    ---Purpose: sets ancestor shape (tool) for faulty sub-shapes
-    
-    AddFaultyShape2(me: in out; TheShape: Shape from TopoDS);
-    ---Purpose: adds faulty sub-shapes from tool to a list
-    
-    GetShape1(me)
-       returns Shape from TopoDS;
-       ---C++: return const &
-       ---Purpose: returns ancestor shape (object) for faulties
-
-    GetShape2(me)
-       returns Shape from TopoDS;
-       ---C++: return const &
-       ---Purpose: returns ancestor shape (tool) for faulties
-       
-    GetFaultyShapes1(me)
-       returns ListOfShape from TopTools;
-       ---C++: return const &
-       ---Purpose: returns list of faulty shapes for object
-       
-    GetFaultyShapes2(me)
-       returns ListOfShape from TopTools;
-       ---C++: return const &
-       ---Purpose: returns list of faulty shapes for tool
-
-    SetCheckStatus(me: in out; TheStatus: CheckStatus from BOP);
-    ---Purpose: set status of faulty
-    
-    GetCheckStatus(me)
-       returns CheckStatus from BOP;
-       ---Purpose: gets status of faulty
-       
-fields
-
-    myShape1 : Shape from TopoDS;
-    myShape2 : Shape from TopoDS;
-    myStatus : CheckStatus from BOP;
-    myFaulty1 : ListOfShape from TopTools;
-    myFaulty2 : ListOfShape from TopTools;
-
-end CheckResult;
diff --git a/src/BOP/BOP_CheckResult.cxx b/src/BOP/BOP_CheckResult.cxx
deleted file mode 100755 (executable)
index 4807aac..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-// Created on: 2004-09-02
-// Created by: Oleg FEDYAEV
-// Copyright (c) 2004-2012 OPEN CASCADE SAS
-//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
-//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
-//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
-
-#include <BOP_CheckResult.ixx>
-
-//=======================================================================
-// function:  BOP_CheckResult()
-// purpose: 
-//=======================================================================
-BOP_CheckResult::BOP_CheckResult() : myStatus(BOP_CheckUnknown)
-{
-}
-
-void BOP_CheckResult::SetShape1(const TopoDS_Shape& TheShape)
-{
-  myShape1 = TheShape;
-}
-
-void BOP_CheckResult::AddFaultyShape1(const TopoDS_Shape& TheShape)
-{
-  myFaulty1.Append(TheShape);
-}
-
-void BOP_CheckResult::SetShape2(const TopoDS_Shape& TheShape)
-{
-  myShape2 = TheShape;
-}
-
-void BOP_CheckResult::AddFaultyShape2(const TopoDS_Shape& TheShape)
-{
-  myFaulty2.Append(TheShape);
-}
-
-const TopoDS_Shape& BOP_CheckResult::GetShape1() const
-{
-  return myShape1;
-}
-
-const TopoDS_Shape & BOP_CheckResult::GetShape2() const
-{
-  return myShape2;
-}
-
-const TopTools_ListOfShape& BOP_CheckResult::GetFaultyShapes1() const
-{
-  return myFaulty1;
-}
-
-const TopTools_ListOfShape& BOP_CheckResult::GetFaultyShapes2() const
-{
-  return myFaulty2;
-}
-
-void BOP_CheckResult::SetCheckStatus(const BOP_CheckStatus TheStatus)
-{
-  myStatus = TheStatus;
-}
-
-BOP_CheckStatus BOP_CheckResult::GetCheckStatus() const
-{
-  return myStatus;
-}
diff --git a/src/BOP/BOP_CompositeClassifier.cdl b/src/BOP/BOP_CompositeClassifier.cdl
deleted file mode 100755 (executable)
index 83c1204..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
--- Created on: 1996-01-05
--- Created by: Jean Yves LEBEY
--- Copyright (c) 1996-1999 Matra Datavision
--- Copyright (c) 1999-2012 OPEN CASCADE SAS
---
--- The content of this file is subject to the Open CASCADE Technology Public
--- License Version 6.5 (the "License"). You may not use the content of this file
--- except in compliance with the License. Please obtain a copy of the License
--- at http://www.opencascade.org and read it completely before using this file.
---
--- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
--- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
---
--- The Original Code and all software distributed under the License is
--- distributed on an "AS IS" basis, without warranty of any kind, and the
--- Initial Developer hereby disclaims all such warranties, including without
--- limitation, any warranties of merchantability, fitness for a particular
--- purpose or non-infringement. Please see the License for the specific terms
--- and conditions governing the rights and limitations under the License.
-
-
-deferred class CompositeClassifier from BOP inherits LoopClassifier from BOP
-
-    ---Purpose:  
-    --  The Root class for algorithms  
-    --  to   classify composite Loops, i.e, Loops that  
-    --  can be either a Shape, or a block of Elements.
-    --   
-    
-uses
-    
-    ShapeEnum from TopAbs,
-    Shape     from TopoDS,
-    State     from TopAbs,
-     
-    Loop         from BOP,
-    BlockBuilder from BOP
-    
-is
-
-    Initialize(BB : BlockBuilder from BOP);
-       ---Purpose:  
-       --- Initializing the object with BlockBuilder;   
-       ---
-    Compare(me :out;  
-       L1 : Loop from BOP;  
-       L2 : Loop from BOP)  
-       returns State from TopAbs
-       is redefined;
-       ---Purpose:  
-       --- Classify loop <L1> with  <L2>  
-       ---
-    CompareShapes(me :out;  
-       B1 : Shape from TopoDS;
-       B2 : Shape from TopoDS)
-       ---Purpose:  
-       --- Classify shape <B1> with shape <B2>
-       ---
-       returns State from TopAbs  
-       is deferred;
-    
-    CompareElementToShape(me :out;  
-       E : Shape from TopoDS;
-       B : Shape from TopoDS) 
-       returns State from TopAbs  
-       is deferred;
-       ---Purpose:  
-       --- Classify element <E> with shape <B>
-       ---
-    ResetShape(me :out;  
-       B : Shape from TopoDS)  
-       is deferred;
-       ---Purpose:  
-       --- Prepare classification involving shape <B>
-       --- Calls ResetElement on first element of <B>
-       ---
-    
-    ResetElement(me :out;  
-       E : Shape from TopoDS)  
-       is deferred;
-       ---Purpose:  
-       --- Prepare classification involving element <E>.
-       ---
-    CompareElement(me :out;  
-       E : Shape from TopoDS)  
-       is deferred;
-       ---Purpose:  
-       --- Add element <E> in the set of elements used in classification.
-       ---
-    State(me :out)  
-       returns State from TopAbs  
-       is deferred;
-       ---Purpose:  
-       --- Returns state of classification of 2D point, defined by 
-       --- ResetElement, with the current set of elements,  
-       --- defined by Compare.
-       ---
-fields
-
-    myBlockBuilder : Address  
-       is protected; 
-
-end CompositeClassifier;
diff --git a/src/BOP/BOP_CompositeClassifier.cxx b/src/BOP/BOP_CompositeClassifier.cxx
deleted file mode 100755 (executable)
index dd394ee..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-// Created on: 1996-01-05
-// Created by: Jean Yves LEBEY
-// Copyright (c) 1996-1999 Matra Datavision
-// Copyright (c) 1999-2012 OPEN CASCADE SAS
-//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
-//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
-//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
-
-#include <BOP_CompositeClassifier.ixx>
-
-//=======================================================================
-//function : BOP_CompositeClassifier::BOP_CompositeClassifier
-//purpose  : 
-//=======================================================================
-BOP_CompositeClassifier::BOP_CompositeClassifier (const BOP_BlockBuilder& BB)
- :
-  myBlockBuilder((void*)&BB)
-{}
-//=======================================================================
-//function : Compare
-//purpose  : 
-//=======================================================================
-  TopAbs_State BOP_CompositeClassifier::Compare(const Handle(BOP_Loop)& L1,
-                                               const Handle(BOP_Loop)& L2)
-{ 
-  TopAbs_State state = TopAbs_UNKNOWN;
-
-  Standard_Boolean isshape1, isshape2, yena1 ;
-
-  isshape1 = L1->IsShape();
-  isshape2 = L2->IsShape();
-
-  if      ( isshape2 && isshape1 )  { 
-    // L1 is Shape , L2 is Shape
-    const TopoDS_Shape& s1 = L1->Shape();
-    const TopoDS_Shape& s2 = L2->Shape();
-    state = CompareShapes(s1,s2);
-  }
-
-  else if ( isshape2 && !isshape1 ) { 
-    // L1 is Block , L2 is Shape
-    BOP_BlockIterator Bit1 = L1->BlockIterator();
-    Bit1.Initialize();
-    yena1 = Bit1.More();
-    while (yena1) {
-      const TopoDS_Shape& s1 = 
-       ((BOP_BlockBuilder*)myBlockBuilder)->Element(Bit1);
-      const TopoDS_Shape& s2 = L2->Shape();
-      
-      state = CompareElementToShape(s1,s2);
-      yena1 = Standard_False;
-      if (state == TopAbs_UNKNOWN) { 
-       if (Bit1.More()) Bit1.Next();
-       yena1 = Bit1.More();
-      }
-    }
-  }
-  else if ( !isshape2 && isshape1 ) { 
-    // L1 is Shape , L2 is Block
-    const TopoDS_Shape& s1 = L1->Shape();
-    
-    ResetShape(s1);
-    BOP_BlockIterator Bit2 = L2->BlockIterator();
-    for (Bit2.Initialize(); Bit2.More(); Bit2.Next()) {
-      const TopoDS_Shape& s2 = 
-       ((BOP_BlockBuilder*)myBlockBuilder)->Element(Bit2);
-      CompareElement(s2);
-    }
-    state = State();
-  }
-  
-  else if ( !isshape2 && !isshape1 ) {
-    // L1 is Block , L2 is Block
-    BOP_BlockIterator Bit1 = L1->BlockIterator();
-    Bit1.Initialize();
-    yena1 = Bit1.More();
-    while (yena1) {
-      const TopoDS_Shape& s1 = 
-       ((BOP_BlockBuilder*)myBlockBuilder)->Element(Bit1);
-      
-      ResetElement(s1);
-      BOP_BlockIterator Bit2 = L2->BlockIterator();
-      for (Bit2.Initialize(); Bit2.More(); Bit2.Next()) {
-       const TopoDS_Shape& s2 = 
-         ((BOP_BlockBuilder*)myBlockBuilder)->Element(Bit2);
-       CompareElement(s2);
-      }
-    
-      state = State();
-      yena1 = Standard_False;
-      if (state == TopAbs_UNKNOWN) { 
-       if (Bit1.More()) Bit1.Next();
-       yena1 = Bit1.More();
-      }
-    }
-  }
-  return state;
-}
diff --git a/src/BOP/BOP_ConnexityBlock.cdl b/src/BOP/BOP_ConnexityBlock.cdl
deleted file mode 100755 (executable)
index 2f7f246..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
--- Created on: 2001-04-13
--- Created by: Peter KURNEV
--- Copyright (c) 2001-2012 OPEN CASCADE SAS
---
--- The content of this file is subject to the Open CASCADE Technology Public
--- License Version 6.5 (the "License"). You may not use the content of this file
--- except in compliance with the License. Please obtain a copy of the License
--- at http://www.opencascade.org and read it completely before using this file.
---
--- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
--- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
---
--- The Original Code and all software distributed under the License is
--- distributed on an "AS IS" basis, without warranty of any kind, and the
--- Initial Developer hereby disclaims all such warranties, including without
--- limitation, any warranties of merchantability, fitness for a particular
--- purpose or non-infringement. Please see the License for the specific terms
--- and conditions governing the rights and limitations under the License.
-
-
-
-class ConnexityBlock from BOP 
-
-       ---Purpose: 
-       ---  Auxiliary class to store data about set  
-       ---  of connex shapes 
-       --- 
-       
-uses
-    ListOfShape               from TopTools,
-    IndexedMapOfOrientedShape from TopTools
-
-is 
-    Create
-       returns ConnexityBlock from BOP; 
-       ---Purpose:  
-       --- Empty constructor; 
-       ---
-    SetShapes    (me:out; 
-        anEdges: ListOfShape from TopTools); 
-       ---Purpose:  
-       --- Modifier
-       ---
-    SetShapes    (me:out; 
-       nEdges: IndexedMapOfOrientedShape from TopTools); 
-       ---Purpose:  
-       --- Modifier
-       ---
-    SetRegularity(me:out;  
-                  aFlag:Boolean from Standard);                    
-       ---Purpose:  
-       --- Modifier
-       ---
-    Shapes  (me) 
-       returns ListOfShape from TopTools; 
-       ---C++:  return const &  
-       ---Purpose:  
-       --- Selector
-       ---
-    IsRegular(me) 
-        returns Boolean from Standard;  
-       ---Purpose:  
-       --- Selector 
-       --- Returns TRUE if all elements in the block are 
-       --- biconnexity         
-       ---
-    
-fields
-    
-    myRegularity  :  Boolean from Standard;  
-    myShapes      :  ListOfShape from TopTools; 
-
-end ConnexityBlock;
diff --git a/src/BOP/BOP_ConnexityBlock.cxx b/src/BOP/BOP_ConnexityBlock.cxx
deleted file mode 100755 (executable)
index 007824d..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-// Created on: 2001-04-13
-// Created by: Peter KURNEV
-// Copyright (c) 2001-2012 OPEN CASCADE SAS
-//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
-//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
-//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
-
-
-#include <BOP_ConnexityBlock.ixx>
-
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-
-#include <TopoDS_Shape.hxx>
-
-//=======================================================================
-// function: BOP_ConnexityBlock::BOP_ConnexityBlock
-// purpose: 
-//=======================================================================
-BOP_ConnexityBlock::BOP_ConnexityBlock()
-:
-  myRegularity(Standard_False)
-{}
-//=======================================================================
-// function: SetRegularity
-// purpose: 
-//=======================================================================
-  void BOP_ConnexityBlock::SetRegularity (const Standard_Boolean aFlag)
-{
-  myRegularity=aFlag;
-}
-//=======================================================================
-// function: IsRegular
-// purpose: 
-//=======================================================================
-  Standard_Boolean BOP_ConnexityBlock::IsRegular ()const
-{
-  return myRegularity;
-}
-//=======================================================================
-// function: SetShapes
-// purpose: 
-//=======================================================================
-  void BOP_ConnexityBlock::SetShapes(const TopTools_ListOfShape& anEdges)
-{
-  myShapes.Clear();
-  TopTools_ListIteratorOfListOfShape anIt(anEdges);
-  for (; anIt.More(); anIt.Next()) {
-    const TopoDS_Shape& anE=anIt.Value();
-    myShapes.Append(anE);
-  }
-}
-
-//=======================================================================
-// function: SetShapes
-// purpose: 
-//=======================================================================
-  void BOP_ConnexityBlock::SetShapes(const TopTools_IndexedMapOfOrientedShape& anEdges)
-{
-  myShapes.Clear();
-  Standard_Integer i, aNb;
-
-  aNb=anEdges.Extent();
-  for (i=1; i<=aNb; i++) {
-    const TopoDS_Shape& anE=anEdges(i);
-    myShapes.Append(anE);
-  }
-}
-
-//=======================================================================
-// function: Shapes
-// purpose: 
-//=======================================================================
-  const TopTools_ListOfShape& BOP_ConnexityBlock::Shapes()const
-{
-  return myShapes;
-}
diff --git a/src/BOP/BOP_CorrectTolerances.cdl b/src/BOP/BOP_CorrectTolerances.cdl
deleted file mode 100755 (executable)
index b7bd0be..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
--- Created on: 2001-04-17
--- Created by: Peter KURNEV
--- Copyright (c) 2001-2012 OPEN CASCADE SAS
---
--- The content of this file is subject to the Open CASCADE Technology Public
--- License Version 6.5 (the "License"). You may not use the content of this file
--- except in compliance with the License. Please obtain a copy of the License
--- at http://www.opencascade.org and read it completely before using this file.
---
--- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
--- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
---
--- The Original Code and all software distributed under the License is
--- distributed on an "AS IS" basis, without warranty of any kind, and the
--- Initial Developer hereby disclaims all such warranties, including without
--- limitation, any warranties of merchantability, fitness for a particular
--- purpose or non-infringement. Please see the License for the specific terms
--- and conditions governing the rights and limitations under the License.
-
-
-
-class CorrectTolerances from BOP 
-
-       ---Purpose: 
-       ---  The  Set  of  static functions to provide valid values of  
-       ---  tolerances for shapes.     
-       ---  Tolerances becomes valid in  terms of the checkshape.    
-
-uses
-    Shape  from  TopoDS 
-    
-is 
-    CorrectTolerances      (myclass;  
-                           aS: Shape  from  TopoDS; 
-                           aTolMax: Real from Standard =0.0001);  
-       ---Purpose:      
-       --- Provides valid values of tolerances for the shape <aS>         
-       --- <aTolMax> is max value of the tolerance that can be 
-       --- accepted for correction.  If real value of the tolerance 
-       --- will be greater than  <aTolMax>, the correction does not 
-       --- perform. 
-       ---
-    CorrectCurveOnSurface  (myclass;  
-                           aS: Shape  from  TopoDS; 
-                           aTolMax: Real from Standard =0.0001); 
-       ---Purpose:      
-       --- Provides valid values of tolerances for the shape <aS> 
-       --- in  terms of BRepCheck_InvalidCurveOnSurface.   
-       ---
-    CorrectPointOnCurve    (myclass;  
-                           aS: Shape  from  TopoDS; 
-                           aTolMax: Real from Standard =0.0001);                   
-       ---Purpose:      
-       --- Provides valid values of tolerances for the shape <aS> 
-       --- in  terms of BRepCheck_InvalidPointOnCurve.   
-       ---
-
-end CorrectTolerances;
diff --git a/src/BOP/BOP_CorrectTolerances.cxx b/src/BOP/BOP_CorrectTolerances.cxx
deleted file mode 100755 (executable)
index 0c23a53..0000000
+++ /dev/null
@@ -1,593 +0,0 @@
-// Created on: 2001-04-17
-// Created by: Peter KURNEV
-// Copyright (c) 2001-2012 OPEN CASCADE SAS
-//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
-//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
-//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
-
-
-#include <BOP_CorrectTolerances.ixx>
-
-#include <TopTools_IndexedMapOfShape.hxx>
-#include <TopExp.hxx>
-#include <TopExp_Explorer.hxx>
-
-#include <TopoDS.hxx>
-#include <TopoDS_Edge.hxx>
-#include <TopoDS_Vertex.hxx>
-#include <TopoDS_Face.hxx>
-
-#include <TopLoc_Location.hxx>
-
-#include <BRep_TVertex.hxx>
-#include <BRep_TEdge.hxx>
-#include <BRep_TFace.hxx>
-#include <BRep_Tool.hxx>
-#include <BRep_GCurve.hxx>
-#include <BRep_ListIteratorOfListOfPointRepresentation.hxx>
-#include <BRep_ListIteratorOfListOfCurveRepresentation.hxx>
-#include <BRep_CurveRepresentation.hxx>
-#include <BRep_PointRepresentation.hxx>
-
-#include <Geom_Curve.hxx>
-#include <Geom_Surface.hxx>
-#include <Geom_Plane.hxx>
-#include <Geom_TrimmedCurve.hxx>
-
-#include <GeomAdaptor_Curve.hxx>
-#include <GeomAdaptor_HCurve.hxx>
-#include <GeomAdaptor_HSurface.hxx>
-
-#include <Geom2d_Curve.hxx>
-
-#include <Geom2dAdaptor_HCurve.hxx>
-#include <Geom_RectangularTrimmedSurface.hxx>
-#include <Geom2dAdaptor.hxx>
-#include <GeomProjLib.hxx>
-
-#include <ProjLib_ProjectedCurve.hxx>
-#include <Extrema_LocateExtPC.hxx>
-
-#include <gp_Pnt.hxx>
-
-#include <Adaptor3d_HCurve.hxx>
-#include <Adaptor3d_CurveOnSurface.hxx>
-#include <Adaptor3d_HCurveOnSurface.hxx>
-
-
-
-static 
-  void CheckEdge (const TopoDS_Edge& E,
-                 const Standard_Real aMaxTol);
-static 
-  void CorrectEdgeTolerance (const TopoDS_Edge& myShape,
-                            const TopoDS_Face& S,
-                            const Standard_Real aMaxTol);
-static 
-  Standard_Boolean Validate(const Adaptor3d_Curve& CRef,
-                        const Adaptor3d_Curve& Other,
-                        const Standard_Real Tol,
-                        const Standard_Boolean SameParameter,
-                        Standard_Real& aNewTolerance);
-
-//
-static
-  void CorrectVertexTolerance(const TopoDS_Edge& aE);
-//
-
-//=======================================================================
-// Function : CorrectTolerances
-// purpose : 
-//=======================================================================
-  void BOP_CorrectTolerances::CorrectTolerances(const TopoDS_Shape& aShape,
-                                               const Standard_Real aMaxTol)
-{
-  BOP_CorrectTolerances::CorrectPointOnCurve(aShape, aMaxTol);
-  BOP_CorrectTolerances::CorrectCurveOnSurface(aShape, aMaxTol);
-}
-
-//=======================================================================
-// Function : CorrectPointOnCurve
-// purpose : 
-//=======================================================================
-  void BOP_CorrectTolerances::CorrectPointOnCurve(const TopoDS_Shape& S,
-                                                 const Standard_Real aMaxTol)
-{
-  Standard_Integer i, aNb;
-  TopTools_IndexedMapOfShape Edges;
-  TopExp::MapShapes (S, TopAbs_EDGE, Edges);
-  aNb=Edges.Extent();
-  for (i=1; i<=aNb; i++) {
-    const TopoDS_Edge& E= TopoDS::Edge(Edges(i));
-    CheckEdge(E, aMaxTol);
-  }     
-}
-
-//=======================================================================
-// Function : CorrectCurveOnSurface
-// purpose : 
-//=======================================================================
-  void BOP_CorrectTolerances::CorrectCurveOnSurface(const TopoDS_Shape& S,
-                                                   const Standard_Real aMaxTol)
-{
-  Standard_Integer i, aNbFaces, j, aNbEdges;
-  TopTools_IndexedMapOfShape Faces;
-  TopExp::MapShapes (S, TopAbs_FACE, Faces);
-  
-  aNbFaces=Faces.Extent();
-  for (i=1; i<=aNbFaces; i++) {
-    const TopoDS_Face& F= TopoDS::Face(Faces(i));
-    TopTools_IndexedMapOfShape Edges;
-    TopExp::MapShapes (F, TopAbs_EDGE, Edges);
-    aNbEdges=Edges.Extent();
-    for (j=1; j<=aNbEdges; j++) {
-      const TopoDS_Edge& E= TopoDS::Edge(Edges(j));
-      CorrectEdgeTolerance (E, F, aMaxTol);
-    }
-  }
-}
-
-//=======================================================================
-// Function : CorrectEdgeTolerance
-// purpose :  Correct tolerances for Edge 
-//=======================================================================
-void CorrectEdgeTolerance (const TopoDS_Edge& myShape, 
-                          const TopoDS_Face& S,
-                          const Standard_Real aMaxTol)
-{
-  // 
-  // 1. Minimum of conditions to Perform
-  Handle (BRep_CurveRepresentation) myCref;
-  Handle (Adaptor3d_HCurve) myHCurve;
-
-  myCref.Nullify();
-
-  Handle(BRep_TEdge)& TEx = *((Handle(BRep_TEdge)*)&myShape.TShape());
-  BRep_ListIteratorOfListOfCurveRepresentation itcrx(TEx->Curves());
-  Standard_Boolean Degenerated, SameParameterx, SameRangex;
-
-  Standard_Integer unique = 0;
-
-  Degenerated    = TEx->Degenerated();
-  SameParameterx = TEx->SameParameter();
-  SameRangex     = TEx->SameRange();
-  
-  if (!SameRangex && SameParameterx) {
-    return;
-  }
-
-  Handle(Geom_Curve) C3d;
-  while (itcrx.More()) {
-    const Handle(BRep_CurveRepresentation)& cr = itcrx.Value();
-    if (cr->IsCurve3D()) {
-      unique++;
-      if (myCref.IsNull() && !cr->Curve3D().IsNull()) {
-       myCref = cr;
-      }
-    }
-    itcrx.Next();
-  }
-  
-  if (unique==0) {
-    return;//...No3DCurve
-  }
-  if (unique>1) {
-    return;//...Multiple3DCurve;
-  }
-
-  if (myCref.IsNull() && !Degenerated) {
-    itcrx.Initialize(TEx->Curves());
-    while (itcrx.More()) {
-      const Handle(BRep_CurveRepresentation)& cr = itcrx.Value();
-      if (cr->IsCurveOnSurface()) {
-       myCref = cr;
-       break;
-      }
-      itcrx.Next();
-    }
-  }
-  
-  else if (!myCref.IsNull() && Degenerated){
-    return ;//...InvalidDegeneratedFlag;
-  }
-  
-  if (!myCref.IsNull()) {
-    const Handle(BRep_GCurve)& GCref = *((Handle(BRep_GCurve)*)&myCref);
-    Standard_Real First,Last;
-    GCref->Range(First,Last);
-    if (Last<=First) {
-      myCref.Nullify();
-      return ;//InvalidRange;
-    }
-    
-    else {
-      if (myCref->IsCurve3D()) {
-       Handle(Geom_Curve) C3dx = Handle(Geom_Curve)::DownCast
-         (myCref->Curve3D()->Transformed (myCref->Location().Transformation()));
-       GeomAdaptor_Curve GAC3d(C3dx, First, Last);
-       myHCurve = new GeomAdaptor_HCurve(GAC3d);
-      }
-      else { // curve on surface
-       Handle(Geom_Surface) Sref = myCref->Surface();
-       Sref = Handle(Geom_Surface)::DownCast(Sref->Transformed(myCref->Location().Transformation()));
-       const  Handle(Geom2d_Curve)& PCref = myCref->PCurve();
-       Handle(GeomAdaptor_HSurface) GAHSref = new GeomAdaptor_HSurface(Sref);
-       Handle(Geom2dAdaptor_HCurve) GHPCref = new Geom2dAdaptor_HCurve(PCref, First, Last);
-       Adaptor3d_CurveOnSurface ACSref(GHPCref,GAHSref);
-       myHCurve = new Adaptor3d_HCurveOnSurface(ACSref);
-      }
-    }
-  }
-
-  //=============================================== 
-  // 2. Tolerances in InContext
-  {
-    if (myCref.IsNull()) 
-      return;
-    Standard_Boolean ok=Standard_True;;
-
-    Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*)&myShape.TShape());
-    Standard_Real Tol = BRep_Tool::Tolerance(TopoDS::Edge(myShape));
-    Standard_Real aNewTol=Tol;
-
-    Standard_Boolean SameParameter = TE->SameParameter();
-    Standard_Boolean SameRange = TE->SameRange();
-    Standard_Real First = myHCurve->FirstParameter();
-    Standard_Real Last  = myHCurve->LastParameter();
-    Standard_Real Delta =1.e-14;
-
-    Handle(BRep_TFace)& TF = *((Handle(BRep_TFace)*) &S.TShape());
-    const TopLoc_Location& Floc = S.Location();
-    const TopLoc_Location& TFloc = TF->Location();
-    const Handle(Geom_Surface)& Su = TF->Surface();
-    TopLoc_Location L = (Floc * TFloc).Predivided(myShape.Location());
-    //      Standard_Boolean checkclosed = Standard_False;
-    Standard_Boolean pcurvefound = Standard_False;
-
-    BRep_ListIteratorOfListOfCurveRepresentation itcr(TE->Curves());
-    while (itcr.More()) {
-      const Handle(BRep_CurveRepresentation)& cr = itcr.Value();
-      if (cr != myCref && cr->IsCurveOnSurface(Su,L)) {
-       pcurvefound = Standard_True;
-       const Handle(BRep_GCurve)& GC = *((Handle(BRep_GCurve)*)&cr);
-       Standard_Real f,l;
-       GC->Range(f,l);
-       if (SameRange && (f != First || l != Last)) {
-         return ;//BRepCheck_InvalidSameRangeFlag);
-         if (SameParameter) {
-           return; //BRepCheck_InvalidSameParameterFlag);
-         }
-        }
-       
-       Handle(Geom_Surface) Sb = cr->Surface();
-       Sb = Handle(Geom_Surface)::DownCast (Su->Transformed(L.Transformation()));
-       Handle(Geom2d_Curve) PC = cr->PCurve();
-       Handle(GeomAdaptor_HSurface) GAHS = new GeomAdaptor_HSurface(Sb);
-       Handle(Geom2dAdaptor_HCurve) GHPC = new Geom2dAdaptor_HCurve(PC,f,l);
-       Adaptor3d_CurveOnSurface ACS(GHPC,GAHS);
-       ok = Validate(myHCurve->Curve(), ACS, Tol, SameParameter, aNewTol);
-       if (ok) {
-         if (cr->IsCurveOnClosedSurface()) {
-           //return ;// BRepCheck::Add(lst,BRepCheck_InvalidCurveOnClosedSurface);
-         }
-         else {
-           //return;//BRepCheck::Add(lst,BRepCheck_InvalidCurveOnSurface);
-         }
-         if (SameParameter) {
-           //return;//BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag);
-         }
-         //
-         if (aNewTol<aMaxTol) {
-           TE->UpdateTolerance(aNewTol+Delta); 
-           //
-           CorrectVertexTolerance(myShape);
-         }
-       }
-
-       if (cr->IsCurveOnClosedSurface()) {
-         //        checkclosed = Standard_True;
-         GHPC->ChangeCurve2d().Load(cr->PCurve2(),f,l); // same bounds
-         ACS.Load(GAHS); // sans doute inutile
-         ACS.Load(GHPC); // meme remarque...
-         ok = Validate(myHCurve->Curve(),ACS,Tol,SameParameter, aNewTol);
-         if (ok) {
-           //return;//BRepCheck::Add(lst,BRepCheck_InvalidCurveOnClosedSurface);
-           if (SameParameter) {
-             //return;//BRepCheck::Add(lst,BRepCheck_InvalidSameParameterFlag);
-           }
-           if (aNewTol<aMaxTol) {
-             TE->UpdateTolerance(aNewTol+Delta);
-             CorrectVertexTolerance(myShape);
-           } 
-         }
-       }
-      }
-      itcr.Next();
-    }
-    
-    if (!pcurvefound) {
-      Handle(Geom_Plane) P;
-      Handle(Standard_Type) styp = Su->DynamicType();
-      if (styp == STANDARD_TYPE(Geom_RectangularTrimmedSurface)) {
-       P = Handle(Geom_Plane)::DownCast(Handle(Geom_RectangularTrimmedSurface)::
-                                        DownCast(Su)->BasisSurface());
-      }
-      else {
-       P = Handle(Geom_Plane)::DownCast(Su);
-      }
-      if (P.IsNull()) { // not a plane
-       return;//BRepCheck::Add(lst,BRepCheck_NoCurveOnSurface);
-      }
-      
-      else {// on fait la projection a la volee, comme BRep_Tool
-       P = Handle(Geom_Plane)::DownCast(P->Transformed(L.Transformation()));
-       //on projette Cref sur ce plan
-       Handle(GeomAdaptor_HSurface) GAHS = new GeomAdaptor_HSurface(P);
-       
-       // Dub - Normalement myHCurve est une GeomAdaptor_HCurve
-       GeomAdaptor_Curve& Gac = Handle(GeomAdaptor_HCurve)::DownCast(myHCurve)->ChangeCurve();
-       Handle(Geom_Curve) C3dx = Gac.Curve();
-       Handle(Geom_Curve) ProjOnPlane = GeomProjLib::ProjectOnPlane
-         (new Geom_TrimmedCurve(C3dx,First,Last), P, P->Position().Direction(), Standard_True);
-
-       Handle(GeomAdaptor_HCurve) aHCurve = new GeomAdaptor_HCurve(ProjOnPlane);
-       
-       ProjLib_ProjectedCurve proj(GAHS,aHCurve);
-       Handle(Geom2d_Curve) PC = Geom2dAdaptor::MakeCurve(proj);
-       Handle(Geom2dAdaptor_HCurve) GHPC = 
-         new Geom2dAdaptor_HCurve(PC, myHCurve->FirstParameter(), myHCurve->LastParameter());
-       
-       Adaptor3d_CurveOnSurface ACS(GHPC,GAHS);
-       
-       Standard_Boolean okx = Validate(myHCurve->Curve(),ACS,
-                                       Tol,Standard_True, aNewTol); // voir dub...
-       if (okx) {
-         //return;//BRepCheck::Add(lst,BRepCheck_InvalidCurveOnSurface);
-         if (aNewTol<aMaxTol) {
-           TE->UpdateTolerance(aNewTol+Delta);
-           CorrectVertexTolerance(myShape);
-         }
-       }
-      }
-      
-    }//end of if (!pcurvefound) {
-  } // end of  2. Tolerances in InContext
-
-}
-
-//=======================================================================
-//function : CorrectVertexTolerance
-//purpose  : 
-//=======================================================================
-void CorrectVertexTolerance(const TopoDS_Edge& aE)
-{
-  Standard_Integer k, aNbV;
-  Standard_Real aTolE, aTolV;
-  TopTools_IndexedMapOfShape aVMap;
-  
-  aTolE=BRep_Tool::Tolerance(aE);
-  
-  TopExp::MapShapes(aE, TopAbs_VERTEX, aVMap);
-  aNbV=aVMap.Extent();
-  for (k=1; k<=aNbV; ++k) {
-    const TopoDS_Vertex& aV=TopoDS::Vertex(aVMap(k));
-    aTolV=BRep_Tool::Tolerance(aV);
-    if (aTolV<aTolE) {
-      Handle(BRep_TVertex)& aTV = *((Handle(BRep_TVertex)*)&aV.TShape());
-      aTV->UpdateTolerance(aTolE);
-    }
-  }
-}
-
-                           
-
-#define NCONTROL 23
-//=======================================================================
-//function : Validate
-//purpose  : 
-//=======================================================================
-Standard_Boolean Validate(const Adaptor3d_Curve& CRef,
-                      const Adaptor3d_Curve& Other,
-                      const Standard_Real Tol,
-                      const Standard_Boolean SameParameter,
-                      Standard_Real& aNewTolerance)
-{
-  Standard_Real First, Last, MaxDistance, aD, Tol2;
-
-  First = CRef.FirstParameter();
-  Last  = CRef.LastParameter();
-  MaxDistance = 0.;
-  Tol2 = Tol*Tol;
-
-  Standard_Integer i, aNC1=NCONTROL-1;
-
-  Standard_Boolean aFlag=Standard_False;
-  Standard_Boolean proj = (!SameParameter || 
-                          First != Other.FirstParameter() ||
-                          Last  != Other.LastParameter());
-  //
-  // 1. 
-  if (!proj) {
-    for (i = 0; i < NCONTROL; i++) {
-      Standard_Real prm = ((aNC1-i)*First + i*Last)/aNC1;
-      gp_Pnt pref   = CRef.Value(prm);
-&nb