1 // Created on: 1996-02-16
2 // Created by: Philippe MANGIN
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 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.
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
17 #include <DrawFairCurve_Batten.ixx>
19 #include <FairCurve_Batten.hxx>
20 #include <FairCurve_AnalysisCode.hxx>
21 #include <GeomTools_Curve2dSet.hxx>
23 DrawFairCurve_Batten::DrawFairCurve_Batten(const Standard_Address TheBatten)
24 : DrawTrSurf_BSplineCurve2d( ((FairCurve_Batten*)TheBatten)->Curve()),
32 void DrawFairCurve_Batten::Compute()
34 FairCurve_AnalysisCode Iana;
35 ((FairCurve_Batten*)MyBatten)->Compute(Iana, 50, 1.0e-2);
36 curv = ((FairCurve_Batten*)MyBatten)->Curve();
38 void DrawFairCurve_Batten::SetPoint(const Standard_Integer Side, const gp_Pnt2d& Point)
41 ((FairCurve_Batten*)MyBatten)->SetP1(Point);
44 ((FairCurve_Batten*)MyBatten)-> SetP2(Point);
49 void DrawFairCurve_Batten::SetAngle(const Standard_Integer Side, const Standard_Real Angle)
52 ((FairCurve_Batten*)MyBatten)->SetAngle1(Angle*M_PI/180);
53 if ( ((FairCurve_Batten*)MyBatten)->GetConstraintOrder1() == 0 )
55 ((FairCurve_Batten*)MyBatten)->SetConstraintOrder1(1);
59 ((FairCurve_Batten*)MyBatten)->SetAngle2(Angle*M_PI/180);
60 if ( ((FairCurve_Batten*)MyBatten)->GetConstraintOrder2() == 0 )
62 ((FairCurve_Batten*)MyBatten)->SetConstraintOrder2(1);
68 void DrawFairCurve_Batten::SetSliding(const Standard_Real Length)
70 ((FairCurve_Batten*)MyBatten)-> SetFreeSliding(Standard_False);
71 ((FairCurve_Batten*)MyBatten)->SetSlidingFactor(Length);
75 void DrawFairCurve_Batten::SetHeight(const Standard_Real Height)
77 ((FairCurve_Batten*)MyBatten)->SetHeight(Height);
81 void DrawFairCurve_Batten::SetSlope(const Standard_Real Slope)
83 ((FairCurve_Batten*)MyBatten)->SetSlope(Slope);
87 Standard_Real DrawFairCurve_Batten::GetAngle(const Standard_Integer Side) const
89 if (Side == 1) return ((FairCurve_Batten*)MyBatten)->GetAngle1();
90 else return ((FairCurve_Batten*)MyBatten)->GetAngle2();
93 Standard_Real DrawFairCurve_Batten::GetSliding() const
95 return ((FairCurve_Batten*)MyBatten)->GetSlidingFactor();
99 void DrawFairCurve_Batten::FreeSliding()
101 ((FairCurve_Batten*)MyBatten)->SetFreeSliding(Standard_True);
105 void DrawFairCurve_Batten::FreeAngle(const Standard_Integer Side)
107 if (Side == 1) ((FairCurve_Batten*)MyBatten)->SetConstraintOrder1(0);
108 else ((FairCurve_Batten*)MyBatten)->SetConstraintOrder2(0);
113 void DrawFairCurve_Batten::Dump(Standard_OStream& S)const
115 GeomTools_Curve2dSet::PrintCurve2d(curv,S);
116 ((FairCurve_Batten*)MyBatten)->Dump(S);