1 -- Created on: 1996-12-05
2 -- Created by: Jean-Pierre COMBE/Odile Olivier
3 -- Copyright (c) 1996-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
6 -- This file is part of Open CASCADE Technology software library.
8 -- This library is free software; you can redistribute it and / or modify it
9 -- under the terms of the GNU Lesser General Public version 2.1 as published
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.
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
17 class PerpendicularRelation from AIS inherits Relation from AIS
18 ---Purpose: A framework to display constraints of perpendicularity
19 -- between two or more interactive datums. These
20 -- datums can be edges or faces.
21 uses Shape from TopoDS,
22 Presentation from Prs3d,
23 PresentationManager3d from PrsMgr,
24 Selection from SelectMgr,
28 Transformation from Geom,
32 Create (aFShape : Shape from TopoDS;
33 aSShape : Shape from TopoDS;
34 aPlane : Plane from Geom)
35 ---Purpose: Constructs an object to display constraints of
36 -- perpendicularity on shapes.
37 -- This object is defined by a first shape aFShape, a
38 -- second shape aSShape, and a plane aPlane.
39 -- aPlane is the plane of reference to show and test the
40 -- perpendicular relation between two shapes, at least
41 -- one of which has a revolved surface.
42 returns mutable PerpendicularRelation from AIS;
44 Create (aFShape : Shape from TopoDS;
45 aSShape : Shape from TopoDS)
46 ---Purpose: Constructs an object to display constraints of
47 -- perpendicularity on shapes.
48 -- This object is defined by a first shape aFShape and a
49 -- second shape aSShape.
50 returns mutable PerpendicularRelation from AIS;
52 -- -- Methods from PresentableObject
55 aPresentationManager: PresentationManager3d from PrsMgr;
56 aPresentation : mutable Presentation from Prs3d;
57 aMode : Integer from Standard= 0)
58 is redefined static private;
61 aProjector: Projector from Prs3d;
62 aPresentation: mutable Presentation from Prs3d)
63 is redefined static private;
66 aProjector : Projector from Prs3d;
67 aTrsf : Transformation from Geom;
68 aPresentation : mutable Presentation from Prs3d)
70 ---Purpose: computes the presentation according to a point of view
71 -- given by <aProjector>.
72 -- To be Used when the associated degenerated Presentations
73 -- have been transformed by <aTrsf> which is not a Pure
74 -- Translation. The HLR Prs can't be deducted automatically
75 -- WARNING :<aTrsf> must be applied
76 -- to the object to display before computation !!!
78 -- Methods from SelectableObject
80 ComputeSelection(me : mutable;
81 aSelection : mutable Selection from SelectMgr;
82 aMode : Integer from Standard)is private;
86 -- Computation private methods
89 ComputeTwoFacesPerpendicular(me: mutable;
90 aPresentation : mutable Presentation from Prs3d)
93 ComputeTwoEdgesPerpendicular(me: mutable;
94 aPresentation : mutable Presentation from Prs3d)
100 myFAttach : Pnt from gp;
101 mySAttach : Pnt from gp;
103 end PerpendicularRelation;