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 BRep_CurveRepresentation; 31 32 33 class BRep_CurveOnClosedSurface; 34 DEFINE_STANDARD_HANDLE(BRep_CurveOnClosedSurface, BRep_CurveOnSurface) 35 36 //! Representation of a curve by two pcurves on 37 //! a closed surface. 38 class BRep_CurveOnClosedSurface : public BRep_CurveOnSurface 39 { 40 41 public: 42 43 44 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); 45 46 void SetUVPoints2 (const gp_Pnt2d& P1, const gp_Pnt2d& P2); 47 48 void UVPoints2 (gp_Pnt2d& P1, gp_Pnt2d& P2) const; 49 50 //! Returns True. 51 Standard_EXPORT virtual Standard_Boolean IsCurveOnClosedSurface() const Standard_OVERRIDE; 52 53 //! Returns True 54 Standard_EXPORT virtual Standard_Boolean IsRegularity() const Standard_OVERRIDE; 55 56 //! A curve on two surfaces (continuity). 57 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; 58 59 Standard_EXPORT virtual const Handle(Geom2d_Curve)& PCurve2() const Standard_OVERRIDE; 60 61 //! Returns Surface() 62 Standard_EXPORT virtual const Handle(Geom_Surface)& Surface2() const Standard_OVERRIDE; 63 64 //! Returns Location() 65 Standard_EXPORT virtual const TopLoc_Location& Location2() const Standard_OVERRIDE; 66 67 Standard_EXPORT virtual const GeomAbs_Shape& Continuity() const Standard_OVERRIDE; 68 69 Standard_EXPORT virtual void Continuity (const GeomAbs_Shape C) Standard_OVERRIDE; 70 71 Standard_EXPORT virtual void PCurve2 (const Handle(Geom2d_Curve)& C) Standard_OVERRIDE; 72 73 //! Return a copy of this representation. 74 Standard_EXPORT virtual Handle(BRep_CurveRepresentation) Copy() const Standard_OVERRIDE; 75 76 //! Recomputes any derived data after a modification. 77 //! This is called when the range is modified. 78 Standard_EXPORT virtual void Update() Standard_OVERRIDE; 79 80 //! Dumps the content of me into the stream 81 Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE; 82 83 84 85 86 DEFINE_STANDARD_RTTIEXT(BRep_CurveOnClosedSurface,BRep_CurveOnSurface) 87 88 protected: 89 90 91 92 93 private: 94 95 96 Handle(Geom2d_Curve) myPCurve2; 97 GeomAbs_Shape myContinuity; 98 gp_Pnt2d myUV21; 99 gp_Pnt2d myUV22; 100 101 102 }; 103 104 105 #include <BRep_CurveOnClosedSurface.lxx> 106 107 108 109 110 111 #endif // _BRep_CurveOnClosedSurface_HeaderFile 112