Commit | Line | Data |
---|---|---|
b311480e | 1 | -- Created on: 1992-09-29 |
2 | -- Created by: Didier PIFFAULT | |
3 | -- Copyright (c) 1992-1999 Matra Datavision | |
973c2be1 | 4 | -- Copyright (c) 1999-2014 OPEN CASCADE SAS |
b311480e | 5 | -- |
973c2be1 | 6 | -- This file is part of Open CASCADE Technology software library. |
b311480e | 7 | -- |
d5f74e42 | 8 | -- This library is free software; you can redistribute it and/or modify it under |
9 | -- the terms of the GNU Lesser General Public License version 2.1 as published | |
973c2be1 | 10 | -- by the Free Software Foundation, with special exception defined in the file |
11 | -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT | |
12 | -- distribution for complete text of the license and disclaimer of any warranty. | |
b311480e | 13 | -- |
973c2be1 | 14 | -- Alternatively, this file may be used under the terms of Open CASCADE |
15 | -- commercial license or contractual agreement. | |
7fd59977 | 16 | |
47cbf134 | 17 | class InterferencePolyhedron from IntPatch inherits Interference from Intf |
7fd59977 | 18 | |
19 | ---Purpose: Computes the interference between two polyhedra or the | |
20 | -- self interference of a polyhedron. | |
21 | ||
22 | uses Pnt from gp, | |
41194117 | 23 | XYZ from gp, |
7fd59977 | 24 | Box from Bnd, |
25 | SectionPoint from Intf, | |
26 | SeqOfSectionPoint from Intf, | |
27 | SectionLine from Intf, | |
28 | SeqOfSectionLine from Intf, | |
29 | TangentZone from Intf, | |
47cbf134 | 30 | SeqOfTangentZone from Intf, |
31 | Polyhedron from IntPatch, | |
32 | PolyhedronTool from IntPatch | |
7fd59977 | 33 | |
34 | is | |
35 | ||
36 | -- Interface : | |
37 | ||
47cbf134 | 38 | Create returns InterferencePolyhedron from IntPatch; |
7fd59977 | 39 | ---Purpose: Constructs an empty interference of Polyhedron. |
40 | ||
47cbf134 | 41 | Create (Obje1 : in Polyhedron from IntPatch; |
42 | Obje2 : in Polyhedron from IntPatch) | |
43 | returns InterferencePolyhedron from IntPatch; | |
7fd59977 | 44 | ---Purpose: Constructs and computes an interference between the two |
45 | -- Polyhedra. | |
46 | ||
47cbf134 | 47 | Create (Obje : in Polyhedron from IntPatch) |
48 | returns InterferencePolyhedron from IntPatch; | |
7fd59977 | 49 | ---Purpose: Constructs and computes the self interference of a |
50 | -- Polyhedron. | |
51 | ||
52 | Perform (me : in out; | |
47cbf134 | 53 | Obje1 : in Polyhedron from IntPatch; |
54 | Obje2 : in Polyhedron from IntPatch); | |
7fd59977 | 55 | ---Purpose: Computes the interference between the two Polyhedra. |
56 | ||
57 | Perform (me : in out; | |
47cbf134 | 58 | Obje : in Polyhedron from IntPatch); |
7fd59977 | 59 | ---Purpose: Computes the self interference of a Polyhedron. |
60 | ||
61 | -- Implementation : | |
62 | ||
63 | Interference (me : in out; | |
47cbf134 | 64 | Obje1 : in Polyhedron from IntPatch) |
7fd59977 | 65 | is private; |
66 | Interference (me : in out; | |
47cbf134 | 67 | Obje1 : in Polyhedron from IntPatch; |
68 | Obje2 : in Polyhedron from IntPatch) | |
7fd59977 | 69 | is private; |
70 | ---Purpose: Compares the bounding volumes between the facets of <Obje1> | |
71 | -- and the facets of <Obje2> and intersects the facets when the | |
72 | -- bounding volumes have a common part. | |
73 | ||
74 | Intersect (me : in out; | |
75 | TriF : in Integer from Standard; | |
47cbf134 | 76 | Obje1 : in Polyhedron from IntPatch; |
7fd59977 | 77 | TriS : in Integer from Standard; |
47cbf134 | 78 | Obje2 : in Polyhedron from IntPatch) |
7fd59977 | 79 | is private; |
80 | ---Purpose: Computes the intersection between the facet <Tri1> of | |
81 | -- <FirstPol> and the facet <Tri2> of <SecondPol>. | |
82 | ||
83 | TangentZoneValue | |
84 | (me; | |
85 | TheTZ : in out TangentZone from Intf; | |
47cbf134 | 86 | Obje1 : Polyhedron from IntPatch; |
7fd59977 | 87 | Tri1 : Integer from Standard; |
47cbf134 | 88 | Obje2 : Polyhedron from IntPatch; |
7fd59977 | 89 | Tri2 : Integer from Standard) |
90 | returns Boolean from Standard | |
91 | is private; | |
92 | ---Purpose: Computes the zone of tangence between the facet <Tri1> of | |
93 | -- <FirstPol> and the facet <Tri2> of <SecondPol>. | |
94 | ||
41194117 | 95 | CoupleCharacteristics (me: in out; |
47cbf134 | 96 | FirstPol: Polyhedron from IntPatch; |
97 | SeconPol: Polyhedron from IntPatch) is private; | |
41194117 K |
98 | fields |
99 | OI : Integer from Standard[3]; -- index des sommets de l objet | |
100 | TI : Integer from Standard[3]; -- index des sommets du tool | |
101 | dpOpT : Real from Standard[3, 3]; -- distance point Objet - point Tool | |
102 | dpOeT : Real from Standard[3, 3]; -- distance point Objet - edge Tool | |
103 | deOpT : Real from Standard[3, 3]; -- distance edge Objet - point Tool | |
104 | voo : XYZ from gp[3]; -- vecteur point point Obje | |
105 | vtt : XYZ from gp[3]; -- vecteur point point Tool | |
106 | Incidence: Real from Standard; -- angle entre les deux plans | |
7fd59977 | 107 | |
108 | end InterferencePolyhedron; |