1 // Created on: 1993-01-09 2 // Created by: CKY / Contract Toubro-Larsen ( Kiran ) 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 _IGESGeom_RuledSurface_HeaderFile 18 #define _IGESGeom_RuledSurface_HeaderFile 19 20 #include <Standard.hxx> 21 #include <Standard_Type.hxx> 22 23 #include <Standard_Integer.hxx> 24 #include <IGESData_IGESEntity.hxx> 25 #include <Standard_Boolean.hxx> 26 27 28 class IGESGeom_RuledSurface; 29 DEFINE_STANDARD_HANDLE(IGESGeom_RuledSurface, IGESData_IGESEntity) 30 31 //! defines IGESRuledSurface, Type <118> Form <0-1> 32 //! in package IGESGeom 33 //! A ruled surface is formed by moving a line connecting points 34 //! of equal relative arc length or equal relative parametric 35 //! value on two parametric curves from a start point to a 36 //! terminate point on the curves. The parametric curves may be 37 //! points, lines, circles, conics, rational B-splines, 38 //! parametric splines or any parametric curve defined in 39 //! the IGES specification. 40 class IGESGeom_RuledSurface : public IGESData_IGESEntity 41 { 42 43 public: 44 45 46 Standard_EXPORT IGESGeom_RuledSurface(); 47 48 //! This method is used to set the fields of the class 49 //! RuledSurface 50 //! - aCurve : First parametric curve 51 //! - anotherCurve : Second parametric curve 52 //! - aDirFlag : Direction Flag 53 //! 0 = Join first to first, last to last 54 //! 1 = Join first to last, last to first 55 //! - aDevFlag : Developable Surface Flag 56 //! 1 = Developable 57 //! 0 = Possibly not 58 Standard_EXPORT void Init (const Handle(IGESData_IGESEntity)& aCurve, const Handle(IGESData_IGESEntity)& anotherCurve, const Standard_Integer aDirFlag, const Standard_Integer aDevFlag); 59 60 //! Sets <me> to be Ruled by Parameter (Form 1) if <mode> is 61 //! True, or Ruled by Length (Form 0) else 62 Standard_EXPORT void SetRuledByParameter (const Standard_Boolean mode); 63 64 //! Returns True if Form is 1 65 Standard_EXPORT Standard_Boolean IsRuledByParameter() const; 66 67 //! returns the first curve 68 Standard_EXPORT Handle(IGESData_IGESEntity) FirstCurve() const; 69 70 //! returns the second curve 71 Standard_EXPORT Handle(IGESData_IGESEntity) SecondCurve() const; 72 73 //! return the sense of direction 74 //! 0 = Join first to first, last to last 75 //! 1 = Join first to last, last to first 76 Standard_EXPORT Standard_Integer DirectionFlag() const; 77 78 //! returns True if developable else False 79 Standard_EXPORT Standard_Boolean IsDevelopable() const; 80 81 82 83 84 DEFINE_STANDARD_RTTIEXT(IGESGeom_RuledSurface,IGESData_IGESEntity) 85 86 protected: 87 88 89 90 91 private: 92 93 94 Handle(IGESData_IGESEntity) theCurve1; 95 Handle(IGESData_IGESEntity) theCurve2; 96 Standard_Integer theDirFlag; 97 Standard_Integer theDevFlag; 98 99 100 }; 101 102 103 104 105 106 107 108 #endif // _IGESGeom_RuledSurface_HeaderFile 109