1 // Created on: 1993-07-06 2 // Created by: Remi LEQUETTE 3 // Copyright (c) 1993-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 _BRep_CurveOnClosedSurface_HeaderFile 18 #define _BRep_CurveOnClosedSurface_HeaderFile 19 20 #include <Standard.hxx> 21 #include <Standard_Type.hxx> 22 23 #include <GeomAbs_Shape.hxx> 24 #include <gp_Pnt2d.hxx> 25 #include <BRep_CurveOnSurface.hxx> 26 #include <Standard_Boolean.hxx> 27 class Geom2d_Curve; 28 class Geom_Surface; 29 class TopLoc_Location; 30 class gp_Pnt2d; 31 class BRep_CurveRepresentation; 32 33 34 class BRep_CurveOnClosedSurface; 35 DEFINE_STANDARD_HANDLE(BRep_CurveOnClosedSurface, BRep_CurveOnSurface) 36 37 //! Representation of a curve by two pcurves on 38 //! a closed surface. 39 class BRep_CurveOnClosedSurface : public BRep_CurveOnSurface 40 { 41 42 public: 43 44 45 Standard_EXPORT BRep_CurveOnClosedSurface(const Handle(Geom2d_Curve)& PC1, const Handle(Geom2d_Curve)& PC2, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const GeomAbs_Shape C); 46 47 void SetUVPoints2 (const gp_Pnt2d& P1, const gp_Pnt2d& P2); 48 49 void UVPoints2 (gp_Pnt2d& P1, gp_Pnt2d& P2) const; 50 51 //! Returns True. 52 Standard_EXPORT virtual Standard_Boolean IsCurveOnClosedSurface() const Standard_OVERRIDE; 53 54 //! Returns True 55 Standard_EXPORT virtual Standard_Boolean IsRegularity() const Standard_OVERRIDE; 56 57 //! A curve on two surfaces (continuity). 58 Standard_EXPORT virtual Standard_Boolean IsRegularity (const Handle(Geom_Surface)& S1, const Handle(Geom_Surface)& S2, const TopLoc_Location& L1, const TopLoc_Location& L2) const Standard_OVERRIDE; 59 60 Standard_EXPORT virtual const Handle(Geom2d_Curve)& PCurve2() const Standard_OVERRIDE; 61 62 //! Returns Surface() 63 Standard_EXPORT virtual const Handle(Geom_Surface)& Surface2() const Standard_OVERRIDE; 64 65 //! Returns Location() 66 Standard_EXPORT virtual const TopLoc_Location& Location2() const Standard_OVERRIDE; 67 68 Standard_EXPORT virtual const GeomAbs_Shape& Continuity() const Standard_OVERRIDE; 69 70 Standard_EXPORT virtual void Continuity (const GeomAbs_Shape C) Standard_OVERRIDE; 71 72 Standard_EXPORT virtual void PCurve2 (const Handle(Geom2d_Curve)& C) Standard_OVERRIDE; 73 74 //! Return a copy of this representation. 75 Standard_EXPORT virtual Handle(BRep_CurveRepresentation) Copy() const Standard_OVERRIDE; 76 77 //! Recomputes any derived data after a modification. 78 //! This is called when the range is modified. 79 Standard_EXPORT virtual void Update() Standard_OVERRIDE; 80 81 82 83 84 DEFINE_STANDARD_RTTIEXT(BRep_CurveOnClosedSurface,BRep_CurveOnSurface) 85 86 protected: 87 88 89 90 91 private: 92 93 94 Handle(Geom2d_Curve) myPCurve2; 95 GeomAbs_Shape myContinuity; 96 gp_Pnt2d myUV21; 97 gp_Pnt2d myUV22; 98 99 100 }; 101 102 103 #include <BRep_CurveOnClosedSurface.lxx> 104 105 106 107 108 109 #endif // _BRep_CurveOnClosedSurface_HeaderFile 110