7fd59977 |
1 | -- File: QANewModTopOpe.cdl |
2 | -- Created: Thu May 3 10:37:16 2001 |
3 | -- Author: Igor FEOKTISTOV <ifv@nnov.matra-dtv.fr> |
4 | -- Copyright: SAMTECH S.A. 2001 |
5 | |
7fd59977 |
6 | -- Lastly modified by : |
7 | -- +---------------------------------------------------------------------------+ |
8 | -- ! ifv ! Creation ! 3-05-2001! 3.0-00-4! |
9 | -- ! skv ! Adaptation to OCC version 5.0 ! 6-05-2003! 3.0-00-2! |
10 | -- +---------------------------------------------------------------------------+ |
11 | |
12 | package QANewModTopOpe |
13 | |
14 | ---Purpose: QANewModTopOpe package provides classes for limitation, gluing |
15 | -- and removing "floating" shapes. |
16 | uses |
17 | |
18 | BRepAlgoAPI, |
19 | TopoDS, |
20 | TopTools, |
21 | TopAbs, |
22 | BRepTools, |
23 | gp, |
24 | BOPTools |
25 | |
26 | is |
27 | |
28 | enumeration ModeOfLimitation is Forward, |
29 | Reversed, |
30 | BothParts; |
31 | |
32 | pointer CutPtr to Cut from BRepAlgoAPI; |
33 | pointer CommonPtr to Common from BRepAlgoAPI; |
34 | |
35 | class Tools; |
36 | ---Purpose: to provide several tools for porting to OCC 5.0 (mkk) |
37 | |
38 | class Limitation; |
39 | ---Purpose: to provide cutting object by face or shell. |
40 | |
41 | class Intersection; |
42 | ---Purpose: to provide intersection of two topological objects. |
43 | |
44 | class Glue; --- inherits BooleanOperation from BRepAlgoAPI |
45 | ---Purpose: to provide topological sewing of two topological objects. |
46 | |
47 | class ReShaper; |
48 | ---Purpose: to remove "floating" objects from compound. |
49 | -- "floating" objects are wires, edges, vertices that do not belong |
50 | -- solids, shells or faces. |
51 | |
52 | IsValid(TheS : Shape from TopoDS; GeomControls : Boolean from Standard = Standard_True) |
53 | returns Boolean from Standard; |
54 | ---Purpose: to check if TheS is valid or not. |
55 | -- in difference with BRepCheck_Analizer, this method allows |
56 | -- some kind of non-manifold shapes |
57 | |
58 | IsManifold(TheS : Shape from TopoDS) returns Boolean from Standard; |
59 | ---Purpose: to check if TheS is manifol or not. |
60 | -- manifold shape is valid SOLID, SHELL, WIRE, EDGE, VERTEX without internal |
61 | -- subshapes - faces, wires, edges and vertices that have INTERNAL orientation |
62 | -- For SHELL there are additional conditions: orientations of faces must |
63 | -- corresponds each other, each edge must be shared not more then two faces. |
64 | -- COMPSOLID is non manifold by default. |
65 | -- COMPOUND conciders to be manifold if: |
66 | -- 1) all shapes in compound are manifold (see above mentioned definitions) |
67 | -- 2) all shapes are fully disconnected - there are any shapes in compound that |
68 | -- share common subshapes. |
69 | |
70 | IsCompoundManifold(TheS : Compound from TopoDS) returns Boolean from Standard; |
71 | ---Purpose: to check if TheS is manifol or not. |
72 | -- compound conciders to be manifold if: |
73 | -- 1) all shapes in compound are manifold (see comments for method IsManifold) |
74 | -- 2) all shapes are fully disconnected - there are any shapes in compound that |
75 | -- share common subshapes. |
76 | |
77 | |
78 | TypeOfShape(TheS : Shape from TopoDS) returns ShapeEnum from TopAbs; |
79 | ---Purpose: to define if COMPOUND is homogeneous |
80 | -- (consists of shapes of the same type) and return this shape type. |
81 | -- If COMPOUND is mixed, method returns TopAbs_COMPOUND. |
82 | -- If TheS is single shape (not COMPOUND), method returns its type. |
83 | -- If COMPOUND contains nested compounds, it concideres to be homogeneous |
84 | -- if all compounds consist of shapes of the same type. |
85 | |
86 | IsConnected(TheS : Shape from TopoDS) returns Boolean from Standard; |
87 | ---Purpose: to check if all subshapes in TheS, when TheS is COMPOUND, COMPSOLID, SHELL or WIRE, |
88 | -- are linked through common faces, edges or vertices. |
89 | -- SOLID, FACE, EDGE, VERTEX concider to be connected by default. |
90 | |
91 | |
92 | end QANewModTopOpe; |
93 | |
94 | |
95 | -- @@SDM: begin |
96 | |
97 | -- Copyright SAMTECH ..........................................Version 3.0-00 |
98 | -- Lastly modified by : skv Date : 6-05-2003 |
99 | |
100 | -- File history synopsis (creation,modification,correction) |
101 | -- +---------------------------------------------------------------------------+ |
102 | -- ! Developer ! Comments ! Date ! Version ! |
103 | -- +-----------!-----------------------------------------!----------!----------+ |
104 | -- ! ifv ! Creation ! 3-05-2001! 3.0-00-4! |
105 | -- ! skv ! Adaptation to OCC version 5.0 ! 6-05-2003! 3.0-00-2! |
106 | -- ! vladimir ! adaptation to CAS 5.0 ! 07/01/03! 4.0-2! |
107 | -- +---------------------------------------------------------------------------+ |
108 | -- |
109 | -- @@SDM: end |