b311480e |
1 | -- Created on: 2001-05-03 |
2 | -- Created by: Igor FEOKTISTOV |
3 | -- Copyright (c) 2001-2012 OPEN CASCADE SAS |
4 | -- |
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. |
9 | -- |
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. |
12 | -- |
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. |
7fd59977 |
19 | |
20 | package QANewModTopOpe |
21 | |
22 | ---Purpose: QANewModTopOpe package provides classes for limitation, gluing |
23 | -- and removing "floating" shapes. |
24 | uses |
25 | |
26 | BRepAlgoAPI, |
27 | TopoDS, |
28 | TopTools, |
29 | TopAbs, |
30 | BRepTools, |
31 | gp, |
4e57c75e |
32 | BOPAlgo, |
33 | BOPDS |
7fd59977 |
34 | |
35 | is |
36 | |
37 | enumeration ModeOfLimitation is Forward, |
38 | Reversed, |
39 | BothParts; |
40 | |
41 | pointer CutPtr to Cut from BRepAlgoAPI; |
42 | pointer CommonPtr to Common from BRepAlgoAPI; |
43 | |
44 | class Tools; |
45 | ---Purpose: to provide several tools for porting to OCC 5.0 (mkk) |
46 | |
47 | class Limitation; |
48 | ---Purpose: to provide cutting object by face or shell. |
49 | |
50 | class Intersection; |
51 | ---Purpose: to provide intersection of two topological objects. |
52 | |
53 | class Glue; --- inherits BooleanOperation from BRepAlgoAPI |
54 | ---Purpose: to provide topological sewing of two topological objects. |
55 | |
56 | class ReShaper; |
57 | ---Purpose: to remove "floating" objects from compound. |
58 | -- "floating" objects are wires, edges, vertices that do not belong |
59 | -- solids, shells or faces. |
60 | |
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 |
66 | |
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. |
78 | |
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. |
85 | |
86 | |
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. |
94 | |
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. |
99 | |
100 | |
101 | end QANewModTopOpe; |