-- Created on: 1995-10-23 -- Created by: Yves FRICAUD -- Copyright (c) 1995-1999 Matra Datavision -- Copyright (c) 1999-2012 OPEN CASCADE SAS -- -- The content of this file is subject to the Open CASCADE Technology Public -- License Version 6.5 (the "License"). You may not use the content of this file -- except in compliance with the License. Please obtain a copy of the License -- at http://www.opencascade.org and read it completely before using this file. -- -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. -- -- The Original Code and all software distributed under the License is -- distributed on an "AS IS" basis, without warranty of any kind, and the -- Initial Developer hereby disclaims all such warranties, including without -- limitation, any warranties of merchantability, fitness for a particular -- purpose or non-infringement. Please see the License for the specific terms -- and conditions governing the rights and limitations under the License. class Tool from BRepOffset ---Purpose: uses Edge from TopoDS, Face from TopoDS, Wire from TopoDS, Shape from TopoDS, Orientation from TopAbs, MapOfShape from TopTools, IndexedMapOfShape from TopTools, DataMapOfShapeShape from TopTools, DataMapOfShapeListOfShape from TopTools, ListOfShape from TopTools, Vertex from TopoDS, State from TopAbs, Image from BRepAlgo, AsDes from BRepAlgo, Analyse from BRepOffset, Curve from Geom is EdgeVertices (myclass; E : Edge from TopoDS; V1 : in out Vertex from TopoDS; V2 : in out Vertex from TopoDS); ---Purpose: is the FirstVertex , is the Last Vertex of -- taking account the orientation of Edge. OriEdgeInFace (myclass; E : Edge from TopoDS; F : Face from TopoDS) ---Purpose: returns the cumul of the orientation of -- and thc containing wire in returns Orientation from TopAbs; OrientSection (myclass; E : Edge from TopoDS; F1,F2 : Face from TopoDS; O1,O2 : in out Orientation from TopAbs); ---Purpose: is a section between and . Computes -- the orientation of in influenced by . -- idem for . HasCommonShapes (myclass; F1,F2 : Face from TopoDS; LE : in out ListOfShape from TopTools; LV : in out ListOfShape from TopTools) ---Purpose: Returns True if and has common Vertices -- or edges , contains the common edges. the -- common vertices. returns Boolean from Standard; Inter3D (myclass; F1, F2 : Face from TopoDS; LInt1 : in out ListOfShape from TopTools; LInt2 : in out ListOfShape from TopTools; Side : State from TopAbs; RefEdge : Edge from TopoDS; IsRefEdgeDefined : Boolean from Standard = Standard_False); ---Purpose: Computes the Section betwwen and the -- edges solution are stored in with the -- orientation on , the sames edges are stored in -- with the orientation on . TryProject (myclass; F1, F2 : Face from TopoDS; Edges : ListOfShape from TopTools; LInt1 : in out ListOfShape from TopTools; LInt2 : in out ListOfShape from TopTools; Side : State from TopAbs; TolConf: Real from Standard) ---Purpose: Find if the edges of the face are on -- the face . -- Set in the updated edges. -- If all the edges are computed, returns true. -- returns Boolean from Standard; PipeInter (myclass; F1, F2 : Face from TopoDS; LInt1 : in out ListOfShape from TopTools; LInt2 : in out ListOfShape from TopTools; Side : State from TopAbs); Inter2d (myclass; F : Face from TopoDS; E1,E2 : Edge from TopoDS; LV : in out ListOfShape from TopTools; Tol : Real from Standard); InterOrExtent (myclass; F1, F2 : Face from TopoDS; LInt1 : in out ListOfShape from TopTools; LInt2 : in out ListOfShape from TopTools; Side : State from TopAbs); CheckBounds(myclass; F : Face from TopoDS; Analyse : Analyse from BRepOffset; enlargeU, enlargeVfirst, enlargeVlast : out Boolean from Standard); EnLargeFace(myclass; F : Face from TopoDS; NF : in out Face from TopoDS; ChangeGeom : Boolean from Standard; UpDatePCurve : Boolean from Standard = Standard_False; enlargeU : Boolean from Standard = Standard_True; enlargeVfirst : Boolean from Standard = Standard_True; enlargeVlast : Boolean from Standard = Standard_True) ---Purpose: if is TRUE , the surface can be -- changed . -- if is TRUE, update the pcurves of the -- edges of on the new surface.if the surface has been changed, -- Returns True if The Surface of has changed. -- returns Boolean from Standard; ExtentFace (myclass; F : Face from TopoDS; ConstShapes : in out DataMapOfShapeShape from TopTools; ToBuild : in out DataMapOfShapeShape from TopTools; Side : State from TopAbs ; TolConf : Real from Standard; NF : in out Face from TopoDS); BuildNeighbour (myclass; W : Wire from TopoDS; F : Face from TopoDS; NOnV1 : in out DataMapOfShapeShape from TopTools; NOnV2 : in out DataMapOfShapeShape from TopTools); ---Purpose: Via the wire explorer store in for -- an Edge of his Edge neighbour on the first -- vertex of . -- Store in NOnV2 the Neighbour of on the last -- vertex of . MapVertexEdges (myclass; S : Shape from TopoDS; MVE : in out DataMapOfShapeListOfShape from TopTools); ---Purpose: Store in MVE for a vertex in the incident -- edges in . -- An Edge is Store only one Time for a vertex. Deboucle3D (myclass; S : in Shape from TopoDS; Boundary : in MapOfShape from TopTools) ---Purpose: Remove the non valid part of an offsetshape -- 1 - Remove all the free boundary and the faces -- connex to such edges. -- 2 - Remove all the shapes not valid in the result -- (according to the side of offseting) -- in this verion only the first point is implemented. returns Shape from TopoDS; CorrectOrientation (myclass ; SI : in Shape from TopoDS; NewEdges : in IndexedMapOfShape from TopTools; AsDes : in out AsDes from BRepAlgo; InitOffset : in out Image from BRepAlgo; Offset : in Real from Standard); Gabarit(myclass ; aCurve : Curve from Geom) returns Real from Standard; end Tool;