1 -- Created on: 2001-05-03
2 -- Created by: Igor FEOKTISTOV
3 -- Copyright (c) 2001-2012 OPEN CASCADE SAS
5 -- The content of this file is subject to the Open CASCADE Technology Public
6 -- License Version 6.5 (the "License"). You may not use the content of this file
7 -- except in compliance with the License. Please obtain a copy of the License
8 -- at http://www.opencascade.org and read it completely before using this file.
10 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 -- The Original Code and all software distributed under the License is
14 -- distributed on an "AS IS" basis, without warranty of any kind, and the
15 -- Initial Developer hereby disclaims all such warranties, including without
16 -- limitation, any warranties of merchantability, fitness for a particular
17 -- purpose or non-infringement. Please see the License for the specific terms
18 -- and conditions governing the rights and limitations under the License.
20 package QANewModTopOpe
22 ---Purpose: QANewModTopOpe package provides classes for limitation, gluing
23 -- and removing "floating" shapes.
37 enumeration ModeOfLimitation is Forward,
41 pointer CutPtr to Cut from BRepAlgoAPI;
42 pointer CommonPtr to Common from BRepAlgoAPI;
45 ---Purpose: to provide several tools for porting to OCC 5.0 (mkk)
48 ---Purpose: to provide cutting object by face or shell.
51 ---Purpose: to provide intersection of two topological objects.
53 class Glue; --- inherits BooleanOperation from BRepAlgoAPI
54 ---Purpose: to provide topological sewing of two topological objects.
57 ---Purpose: to remove "floating" objects from compound.
58 -- "floating" objects are wires, edges, vertices that do not belong
59 -- solids, shells or faces.
61 IsValid(TheS : Shape from TopoDS; GeomControls : Boolean from Standard = Standard_True)
62 returns Boolean from Standard;
63 ---Purpose: to check if TheS is valid or not.
64 -- in difference with BRepCheck_Analizer, this method allows
65 -- some kind of non-manifold shapes
67 IsManifold(TheS : Shape from TopoDS) returns Boolean from Standard;
68 ---Purpose: to check if TheS is manifol or not.
69 -- manifold shape is valid SOLID, SHELL, WIRE, EDGE, VERTEX without internal
70 -- subshapes - faces, wires, edges and vertices that have INTERNAL orientation
71 -- For SHELL there are additional conditions: orientations of faces must
72 -- corresponds each other, each edge must be shared not more then two faces.
73 -- COMPSOLID is non manifold by default.
74 -- COMPOUND conciders to be manifold if:
75 -- 1) all shapes in compound are manifold (see above mentioned definitions)
76 -- 2) all shapes are fully disconnected - there are any shapes in compound that
77 -- share common subshapes.
79 IsCompoundManifold(TheS : Compound from TopoDS) returns Boolean from Standard;
80 ---Purpose: to check if TheS is manifol or not.
81 -- compound conciders to be manifold if:
82 -- 1) all shapes in compound are manifold (see comments for method IsManifold)
83 -- 2) all shapes are fully disconnected - there are any shapes in compound that
84 -- share common subshapes.
87 TypeOfShape(TheS : Shape from TopoDS) returns ShapeEnum from TopAbs;
88 ---Purpose: to define if COMPOUND is homogeneous
89 -- (consists of shapes of the same type) and return this shape type.
90 -- If COMPOUND is mixed, method returns TopAbs_COMPOUND.
91 -- If TheS is single shape (not COMPOUND), method returns its type.
92 -- If COMPOUND contains nested compounds, it concideres to be homogeneous
93 -- if all compounds consist of shapes of the same type.
95 IsConnected(TheS : Shape from TopoDS) returns Boolean from Standard;
96 ---Purpose: to check if all subshapes in TheS, when TheS is COMPOUND, COMPSOLID, SHELL or WIRE,
97 -- are linked through common faces, edges or vertices.
98 -- SOLID, FACE, EDGE, VERTEX concider to be connected by default.