0024530: TKMesh - remove unused package IntPoly
[occt.git] / src / GeomliteTest / GeomliteTest_ModificationCommands.cxx
CommitLineData
b311480e 1// Created on: 1997-04-15
2// Created by: Joelle CHAUVET
3// Copyright (c) 1997-1999 Matra Datavision
973c2be1 4// Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5//
973c2be1 6// This file is part of Open CASCADE Technology software library.
b311480e 7//
973c2be1 8// This library is free software; you can redistribute it and / or modify it
9// under the terms of the GNU Lesser General Public 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.
b311480e 13//
973c2be1 14// Alternatively, this file may be used under the terms of Open CASCADE
15// commercial license or contractual agreement.
7fd59977 16
17#include <GeomliteTest.hxx>
18#include <DrawTrSurf.hxx>
19#include <Draw.hxx>
20#include <Draw_Interpretor.hxx>
21#include <Draw_Appli.hxx>
22#include <Draw_Display.hxx>
23
24#include <Precision.hxx>
25#include <GeomLib.hxx>
26
27#ifdef WNT
28#include <stdio.h>
29//#define strcasecmp strcmp Already defined
30#endif
31
32
33//=======================================================================
34//function : extendcurve
35//purpose :
36//=======================================================================
37
38static Standard_Integer extendcurve (Draw_Interpretor& di, Standard_Integer n, const char** a)
39{
40 if (n < 4) return 1;
41
42 Handle(Geom_BoundedCurve) GB =
43 Handle(Geom_BoundedCurve)::DownCast(DrawTrSurf::GetCurve(a[1]));
44 if (GB.IsNull()) {
45 di << "extendcurve needs a Bounded curve";
46 return 1;
47 }
48
49 gp_Pnt P;
50 if ( !DrawTrSurf::GetPoint(a[2],P)) return 1;
51 Standard_Boolean apres = Standard_True;
52 if (n == 5) {
53 if (strcmp(a[4], "B") == 0) {
54 apres = Standard_False ;
55 }
56 }
91322f44 57 Standard_Integer cont=Draw::Atoi(a[3]);
7fd59977 58 GeomLib::ExtendCurveToPoint(GB,P,cont,apres);
59 DrawTrSurf::Set(a[1],GB);
60 return 0;
61}
62
63//=======================================================================
64//function : extendsurf
65//purpose :
66//=======================================================================
67
68static Standard_Integer extendsurf (Draw_Interpretor& di, Standard_Integer n, const char** a)
69{
70 if (n < 4) return 1;
71
72 Handle(Geom_BoundedSurface) GB =
73 Handle(Geom_BoundedSurface)::DownCast(DrawTrSurf::GetSurface(a[1]));
74 if (GB.IsNull()) {
75 di << "extendsurf needs a Bounded surface";
76 return 1;
77 }
91322f44 78 Standard_Real chord=Draw::Atof(a[2]);
79 Standard_Integer cont=Draw::Atoi(a[3]);
7fd59977 80 Standard_Boolean enU = Standard_True, apres = Standard_True;
81 if (n >= 5) {
82 if (strcmp(a[4], "V") == 0) {
83 enU = Standard_False ;
84 }
85 if (strcmp(a[4], "B") == 0) {
86 apres = Standard_False ;
87 }
88 }
89 if (n == 6) {
90 if (strcmp(a[5], "B") == 0) {
91 apres = Standard_False ;
92 }
93 }
94
95
96 GeomLib::ExtendSurfByLength(GB,chord,cont,enU,apres);
97 DrawTrSurf::Set(a[1],GB);
98
99 return 0;
100}
101
102
103//=======================================================================
104//function : samerange
105//purpose :
106//=======================================================================
107
35e08fe8 108static Standard_Integer samerange (Draw_Interpretor& /*di*/, Standard_Integer n, const char** a)
7fd59977 109{
110 if (n < 6) return 1;
111 Handle(Geom2d_Curve) C = DrawTrSurf::GetCurve2d(a[2]);
112 Handle(Geom2d_Curve) Res;
113 Standard_Real f, l, rf, rl;
91322f44 114 f = Draw::Atof(a[3]);
115 l = Draw::Atof(a[4]);
116 rf = Draw::Atof(a[5]);
117 rl = Draw::Atof(a[6]);
7fd59977 118
119 GeomLib::SameRange(Precision::PConfusion(), C,
120 f, l, rf, rl, Res);
121
122 DrawTrSurf::Set(a[1],Res);
123
124 return 0;
125
126}
127
128//=======================================================================
129//function : ModificationCommands
130//purpose :
131//=======================================================================
132
133
134void GeomliteTest::ModificationCommands(Draw_Interpretor& theCommands)
135{
136 static Standard_Boolean loaded = Standard_False;
137 if (loaded) return;
138 loaded = Standard_True;
139
140 DrawTrSurf::BasicCommands(theCommands);
141
142 const char* g;
143
144 g = "GEOMETRY Curves and Surfaces modification";
145
146
147 theCommands.Add("extendcurve",
148 "extendcurve name point cont [A(fter)/B(efore)]",
149 __FILE__,
150 extendcurve , g);
151
152
153 theCommands.Add("extendsurf",
154 "extendsurf name length cont [U/V] [A(fter)/B(efore)]",
155 __FILE__,
156 extendsurf, g);
157
158
159 theCommands.Add("chgrange",
160 "chgrange newname curve2d first last RequestedFirst RequestedLast ]",
161 __FILE__,
162 samerange, g);
163
164}
165
166
167
168