| 1 | -- File: BRepFill.cdl |
| 2 | -- Created: Thu Mar 3 10:02:58 1994 |
| 3 | -- Author: Bruno DUMORTIER |
| 4 | -- <dub@fuegox> |
| 5 | -- Modified: Mon Nov 3 10:24:07 1997 |
| 6 | -- Author: Joelle CHAUVET |
| 7 | -- new class CurveConstraint |
| 8 | -- Modified: Mon Jan 12 10:46:37 1998 |
| 9 | -- Author: Joelle CHAUVET |
| 10 | -- new method Organize |
| 11 | -- Modified: Mon Feb 23 09:28:33 1998 |
| 12 | -- Author: Joelle CHAUVET |
| 13 | -- new methods SameNumber, ComputeACR, InsertACR |
| 14 | -- for sections with different number of elements |
| 15 | -- Modified: Thu Apr 30 15:27:04 1998 |
| 16 | -- Author: Joelle CHAUVET |
| 17 | -- <jct@sgi64> |
| 18 | -- methods Organize and SameNumber are dispatched in |
| 19 | -- new methods SearchOrigin and SameNumberByACR for open wires |
| 20 | -- and SameNumberByPolarMethod and ComputeOrigin for closed wires |
| 21 | -- Modified: Tue Nov 3 10:41:06 1998 |
| 22 | -- Author: Joelle CHAUVET |
| 23 | -- <jct@sgi64> |
| 24 | -- add classe CompatibleWires |
| 25 | ---Copyright: Matra Datavision 1994 |
| 26 | |
| 27 | |
| 28 | package BRepFill |
| 29 | |
| 30 | |
| 31 | uses |
| 32 | MMgt, |
| 33 | TCollection, |
| 34 | TColStd, |
| 35 | GeomAbs, |
| 36 | gp, |
| 37 | Bnd, |
| 38 | TopLoc, |
| 39 | TColgp, |
| 40 | MAT, |
| 41 | Geom2d, |
| 42 | TColGeom2d, |
| 43 | TopAbs, |
| 44 | TopoDS, |
| 45 | TopTools, |
| 46 | Geom, |
| 47 | TColGeom, |
| 48 | Geom2dAdaptor, |
| 49 | Approx, |
| 50 | Bisector, |
| 51 | BRep, |
| 52 | BRepTools, |
| 53 | BRepAlgo, |
| 54 | BRepSweep, |
| 55 | GeomFill, |
| 56 | BRepMAT2d, |
| 57 | StdFail, |
| 58 | GeomPlate, |
| 59 | Adaptor3d, |
| 60 | Law, |
| 61 | GeomLProp |
| 62 | |
| 63 | is |
| 64 | enumeration TransitionStyle |
| 65 | is Modified, Right, Round end; |
| 66 | |
| 67 | -- private class FilledPair; |
| 68 | ---Purpose: A pair of bound shapes with the result. |
| 69 | |
| 70 | |
| 71 | class Generator; |
| 72 | ---Purpose: Compute a topological surface ( a shell) using |
| 73 | -- generating wires. The face of the shell will be |
| 74 | -- ruled surfaces through the wires. |
| 75 | -- The wires must have the same number of edges. |
| 76 | |
| 77 | deferred class SectionLaw; |
| 78 | class ShapeLaw; |
| 79 | class NSections; |
| 80 | |
| 81 | class Draft; |
| 82 | |
| 83 | deferred class LocationLaw; |
| 84 | class DraftLaw; |
| 85 | class Edge3DLaw; |
| 86 | class EdgeOnSurfLaw; |
| 87 | class ACRLaw; |
| 88 | |
| 89 | class Pipe; |
| 90 | ---Purpose: Computes a topological shape using a wire |
| 91 | -- (spine) and a shape (profile). |
| 92 | class PipeShell; |
| 93 | ---Purpose: Computes a topological shell using some wires -- |
| 94 | -- (spines and profiles) and diplacement option |
| 95 | |
| 96 | |
| 97 | class Evolved; |
| 98 | ---Purpose: Computes an evolved volum using a generating |
| 99 | -- wire and a profile. |
| 100 | |
| 101 | class Sweep; |
| 102 | ---Purpose: Computes an Sweep shell using a generating |
| 103 | -- wire, an SectionLaw and an LocationLaw. |
| 104 | |
| 105 | |
| 106 | class CompatibleWires; |
| 107 | ---Purpose: Computes Wires with good orientation and origin in order |
| 108 | -- to generate a shell not twisted. |
| 109 | |
| 110 | |
| 111 | class OffsetWire; |
| 112 | ---Purpose: Computes the offset of a Wire or the Wires contained |
| 113 | -- in a Face. |
| 114 | -- The Wire or the Face must be planar. |
| 115 | |
| 116 | class OffsetAncestors; |
| 117 | |
| 118 | |
| 119 | class ListOfOffsetWire instantiates |
| 120 | List from TCollection (OffsetWire from BRepFill); |
| 121 | private class ApproxSeewing; |
| 122 | |
| 123 | private class MultiLine; |
| 124 | |
| 125 | private class MultiLineTool; |
| 126 | |
| 127 | private class ComputeCLine instantiates |
| 128 | ComputeCLine from Approx ( MultiLine, MultiLineTool); |
| 129 | |
| 130 | |
| 131 | private class TrimSurfaceTool; |
| 132 | ---Purpose: Compute the Pcurves and the 3d curves resulting |
| 133 | -- of the trimming of a face by an extruded surface. |
| 134 | |
| 135 | private class TrimEdgeTool; |
| 136 | ---Purpose: Geometric Tool using to construct Offset Wires. |
| 137 | |
| 138 | private class SectionPlacement; |
| 139 | |
| 140 | private class Section; |
| 141 | |
| 142 | --class TrimCorner; |
| 143 | |
| 144 | --modified by NIZHNY-MKK Tue Oct 21 17:43:15 2003 |
| 145 | class TrimShellCorner; |
| 146 | |
| 147 | private class SequenceOfSection instantiates |
| 148 | Sequence from TCollection (Section); |
| 149 | |
| 150 | class DataMapOfNodeDataMapOfShapeShape instantiates |
| 151 | DataMap from TCollection (Node from MAT, |
| 152 | DataMapOfShapeShape from TopTools, MapTransientHasher from TColStd ); |
| 153 | |
| 154 | class DataMapOfNodeShape instantiates |
| 155 | DataMap from TCollection (Node from MAT, |
| 156 | Shape from TopoDS, |
| 157 | MapTransientHasher from TColStd ); |
| 158 | |
| 159 | class DataMapOfShapeDataMapOfShapeListOfShape instantiates |
| 160 | DataMap from TCollection (Shape from TopoDS, |
| 161 | DataMapOfShapeListOfShape from TopTools, |
| 162 | ShapeMapHasher from TopTools ); |
| 163 | |
| 164 | class DataMapOfShapeSequenceOfReal instantiates |
| 165 | DataMap from TCollection (Shape from TopoDS, |
| 166 | SequenceOfReal from TColStd, |
| 167 | ShapeMapHasher from TopTools ); |
| 168 | |
| 169 | class DataMapOfShapeSequenceOfPnt instantiates |
| 170 | DataMap from TCollection (Shape from TopoDS, |
| 171 | SequenceOfPnt from TColgp, |
| 172 | ShapeMapHasher from TopTools ); |
| 173 | |
| 174 | class DataMapOfOrientedShapeListOfShape instantiates |
| 175 | DataMap from TCollection (Shape from TopoDS, |
| 176 | ListOfShape from TopTools, |
| 177 | OrientedShapeMapHasher from TopTools); |
| 178 | |
| 179 | class CurveConstraint ; |
| 180 | ---Purpose: same as CurveConstraint from GeomPlate |
| 181 | -- with BRepAdaptor_Surface instead of |
| 182 | -- GeomAdaptor_Surface |
| 183 | -- inherits CurveConstraint from GeomPlate |
| 184 | |
| 185 | class Filling; |
| 186 | ---Purpose: N-Side Filling |
| 187 | -- This algorithm avoids to build a face from: |
| 188 | -- * a set of edges defining the bounds of the face and some |
| 189 | -- constraints the surface of the face has to satisfy |
| 190 | -- * a set of edges and points defining some constraints |
| 191 | -- the support surface has to satisfy |
| 192 | -- * an initial surface to deform for satisfying the constraints |
| 193 | -- * a set of parameters to control the constraints. |
| 194 | |
| 195 | private class FaceAndOrder; |
| 196 | |
| 197 | private class EdgeFaceAndOrder; |
| 198 | |
| 199 | private class SequenceOfFaceAndOrder instantiates |
| 200 | Sequence from TCollection (FaceAndOrder from BRepFill); |
| 201 | |
| 202 | private class SequenceOfEdgeFaceAndOrder instantiates |
| 203 | Sequence from TCollection (EdgeFaceAndOrder from BRepFill); |
| 204 | |
| 205 | Face( Edge1 : Edge from TopoDS; |
| 206 | Edge2 : Edge from TopoDS ) |
| 207 | ---Purpose: Computes a ruled surface between two edges. |
| 208 | returns Face from TopoDS; |
| 209 | |
| 210 | Shell( Wire1 : Wire from TopoDS; |
| 211 | Wire2 : Wire from TopoDS ) |
| 212 | ---Purpose: Computes a ruled surface between two wires. |
| 213 | -- The wires must have the same number of edges. |
| 214 | returns Shell from TopoDS; |
| 215 | |
| 216 | Axe (Spine : Shape from TopoDS; |
| 217 | Profile : Wire from TopoDS; |
| 218 | AxeProf : in out Ax3 from gp; |
| 219 | ProfOnSpine : in out Boolean from Standard; |
| 220 | Tol : Real from Standard); |
| 221 | ---Purpose: Computes <AxeProf> as Follow. <Location> is |
| 222 | -- the Position of the nearest vertex V of <Profile> |
| 223 | -- to <Spine>.<XDirection> is confused with the tangent |
| 224 | -- to <Spine> at the projected point of V on the Spine. |
| 225 | -- <Direction> is normal to <Spine>. |
| 226 | -- <Spine> is a plane wire or a plane face. |
| 227 | |
| 228 | -- <ProfOnSpine> is <False> if the distance |
| 229 | -- between <Profile> and <Spine> is high to <Tol>. |
| 230 | |
| 231 | |
| 232 | SearchOrigin( W : in out Wire from TopoDS; |
| 233 | P : Pnt from gp; |
| 234 | V : Vec from gp; |
| 235 | Tol : Real) is private; |
| 236 | ---Purpose: Computes origins and orientation on a closed wire |
| 237 | |
| 238 | |
| 239 | ComputeACR( wire : Wire from TopoDS; |
| 240 | ACR : out Array1OfReal from TColStd ); |
| 241 | ---Purpose: Compute ACR on a wire |
| 242 | |
| 243 | InsertACR( wire : Wire from TopoDS; |
| 244 | ACRcuts : Array1OfReal from TColStd; |
| 245 | prec : Real from Standard ) |
| 246 | ---Purpose: Insert ACR on a wire |
| 247 | returns Wire from TopoDS; |
| 248 | |
| 249 | |
| 250 | end BRepFill; |
| 251 | |
| 252 | |
| 253 | |
| 254 | |
| 255 | |
| 256 | |
| 257 | |