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 5 // 6 // This file is part of Open CASCADE Technology software library. 7 // 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 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. 13 // 14 // Alternatively, this file may be used under the terms of Open CASCADE 15 // commercial license or contractual agreement. 16 17 #ifndef _PrsDim_PerpendicularRelation_HeaderFile 18 #define _PrsDim_PerpendicularRelation_HeaderFile 19 20 #include <PrsDim_Relation.hxx> 21 22 DEFINE_STANDARD_HANDLE(PrsDim_PerpendicularRelation, PrsDim_Relation) 23 24 //! A framework to display constraints of perpendicularity 25 //! between two or more interactive datums. These 26 //! datums can be edges or faces. 27 class PrsDim_PerpendicularRelation : public PrsDim_Relation 28 { 29 DEFINE_STANDARD_RTTIEXT(PrsDim_PerpendicularRelation, PrsDim_Relation) 30 public: 31 32 //! Constructs an object to display constraints of 33 //! perpendicularity on shapes. 34 //! This object is defined by a first shape aFShape, a 35 //! second shape aSShape, and a plane aPlane. 36 //! aPlane is the plane of reference to show and test the 37 //! perpendicular relation between two shapes, at least 38 //! one of which has a revolved surface. 39 Standard_EXPORT PrsDim_PerpendicularRelation(const TopoDS_Shape& aFShape, const TopoDS_Shape& aSShape, const Handle(Geom_Plane)& aPlane); 40 41 //! Constructs an object to display constraints of 42 //! perpendicularity on shapes. 43 //! This object is defined by a first shape aFShape and a 44 //! second shape aSShape. 45 Standard_EXPORT PrsDim_PerpendicularRelation(const TopoDS_Shape& aFShape, const TopoDS_Shape& aSShape); 46 47 private: 48 49 Standard_EXPORT virtual void Compute (const Handle(PrsMgr_PresentationManager)& thePrsMgr, 50 const Handle(Prs3d_Presentation)& thePrs, 51 const Standard_Integer theMode) Standard_OVERRIDE; 52 53 Standard_EXPORT virtual void ComputeSelection (const Handle(SelectMgr_Selection)& theSel, 54 const Standard_Integer theMode) Standard_OVERRIDE; 55 56 Standard_EXPORT void ComputeTwoFacesPerpendicular (const Handle(Prs3d_Presentation)& aPresentation); 57 58 Standard_EXPORT void ComputeTwoEdgesPerpendicular (const Handle(Prs3d_Presentation)& aPresentation); 59 60 private: 61 62 gp_Pnt myFAttach; 63 gp_Pnt mySAttach; 64 65 }; 66 67 #endif // _PrsDim_PerpendicularRelation_HeaderFile 68