-// File: DBRep_4.cxx
-// Created: Thu Jul 22 16:39:43 1993
-// Author: Remi LEQUETTE
-// <rle@nonox>
+// Created on: 1993-07-22
+// Created by: Remi LEQUETTE
+// Copyright (c) 1993-1999 Matra Datavision
+// Copyright (c) 1999-2014 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
#include <stdio.h>
#include <BRepTest.hxx>
#include <GeometryTest.hxx>
#include <TopTools_SequenceOfShape.hxx>
#include <Precision.hxx>
#include <Draw_ProgressIndicator.hxx>
+#include <NCollection_Vector.hxx>
+#include <BRepBuilderAPI_FastSewing.hxx>
-#ifdef WNT
+#ifdef _WIN32
//#define strcasecmp strcmp Already defined
#include <stdio.h>
#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
//-----------------------------------------------------------------------
// suppressarg : suppress a[d],modifie na--
}
else {
if (mkface)
- res = BRepBuilderAPI_MakeFace(S,atof(a[3]),atof(a[4]),atof(a[5]),atof(a[6]),Precision::Confusion());
+ res = BRepBuilderAPI_MakeFace(S,Draw::Atof(a[3]),Draw::Atof(a[4]),Draw::Atof(a[5]),Draw::Atof(a[6]),Precision::Confusion());
else
- res = BRepBuilderAPI_MakeShell(S,atof(a[3]),atof(a[4]),atof(a[5]),atof(a[6]),
+ res = BRepBuilderAPI_MakeShell(S,Draw::Atof(a[3]),Draw::Atof(a[4]),Draw::Atof(a[5]),Draw::Atof(a[6]),
Segment);
}
col = DBRep_ColorOrientation(ex.Current().Orientation());
DrawTrSurf_CurveColor(col);
- sprintf(name,"%s_%d",a[1],i);
+ Sprintf(name,"%s_%d",a[1],i);
DrawTrSurf::Set(name,new Geom2d_TrimmedCurve(c,f,l));
}
DrawTrSurf_CurveColor(savecol);
{
if (tolower(theArgv[i][2]) == 'i' && i+1 < theArgc)
{
- if (atof (theArgv[i+1]))
+ if (Draw::Atof (theArgv[i+1]))
{
- aMinTol = atof (theArgv[++i]);
+ aMinTol = Draw::Atof (theArgv[++i]);
aSetMinTol = Standard_True;
}
else
}
if (tolower(theArgv[i][2]) == 'a' && i+1 < theArgc)
{
- if (atof (theArgv[i+1]))
- aMaxTol = atof (theArgv[++i]);
+ if (Draw::Atof (theArgv[i+1]))
+ aMaxTol = Draw::Atof (theArgv[++i]);
else
{
theDi << "Error! max tolerance can't possess the null value" << "\n";
}
else
{
- if (atof (theArgv[i]))
- aTol = atof (theArgv[i]);
+ if (Draw::Atof (theArgv[i]))
+ aTol = Draw::Atof (theArgv[i]);
}
}
}
return 0;
}
+//=======================================================================
+//function : fastsewing
+//purpose :
+//=======================================================================
+Standard_Integer fastsewing (Draw_Interpretor& theDI,
+ Standard_Integer theNArg,
+ const char** theArgVal)
+{
+ if(theNArg < 3)
+ {
+ // 0 1 2 3 4
+ theDI << "Use: fastsewing result [-tol <value>] <list_of_faces>\n";
+ return 1;
+ }
+
+ BRepBuilderAPI_FastSewing aFS;
+
+ Standard_Integer aStartIndex = 2;
+
+ if(!strcmp(theArgVal[aStartIndex], "-tol"))
+ {
+ aFS.SetTolerance(Draw::Atof (theArgVal[aStartIndex+1]));
+ aStartIndex = 4;
+ }
+
+ for(Standard_Integer i = aStartIndex; i < theNArg; i++)
+ {
+ TopoDS_Shape aS = DBRep::Get(theArgVal[i]);
+
+ if(!aFS.Add(aS))
+ {
+ theDI << "Face is not added. See statuses.\n";
+ }
+ }
+
+ BRepBuilderAPI_FastSewing::FS_VARStatuses aStatus = aFS.GetStatuses();
+
+ if(aStatus)
+ {
+ theDI << "Error: There are some problems while adding (" <<
+ (static_cast<Standard_Integer>(aStatus)) << ")\n";
+ aFS.GetStatuses(&cout);
+ }
+
+ aFS.Perform();
+
+ aStatus = aFS.GetStatuses();
+
+ if(aStatus)
+ {
+ theDI << "Error: There are some problems while performing (" <<
+ (static_cast<Standard_Integer>(aStatus)) << ")\n";
+ aFS.GetStatuses(&cout);
+ }
+
+ DBRep::Set(theArgVal[1], aFS.GetResult());
+
+ return 0;
+}
+
//=======================================================================
// continuity
//=======================================================================
Standard_Integer i=1;
if (sh.IsNull()) {
if (n < 3) return (1);
- Standard_Real tol = atof(a[1]);
+ Standard_Real tol = Draw::Atof(a[1]);
aFind.Init(tol, Standard_False);
i = 2;
}
aFind.Perform();
aFind.Dump();
- for (i=1; i<=aFind.NbContigousEdges(); i++) {
-#ifdef DEB
- const TopoDS_Edge& edge =
-#endif
- aFind.ContigousEdge(i);
- const TopTools_ListOfShape& list = aFind.ContigousEdgeCouple(i);
- const TopoDS_Edge& sec1 = TopoDS::Edge(list.First());
- const TopoDS_Edge& sec2 = TopoDS::Edge(list.Last());
-#ifdef DEB
- const TopoDS_Edge& bound1 =
-#endif
- aFind.SectionToBoundary(sec1);
-#ifdef DEB
- const TopoDS_Edge& bound2 =
-#endif
- aFind.SectionToBoundary(sec2);
- }
-
return 0;
}
if (n==2)
BRepLib::EncodeRegularity(sh);
else {
- Standard_Real Tol = atof(a[2]);
+ Standard_Real Tol = Draw::Atof(a[2]);
Tol *= M_PI/180.;
BRepLib::EncodeRegularity(sh, Tol);
}
theCommands.Add("encoderegularity",
"encoderegularity shape [tolerance (in degree)]",
__FILE__,encoderegularity, g);
+
+ theCommands.Add ("fastsewing", "fastsewing result [-tol <value>] <list_of_faces>",
+ __FILE__, fastsewing, g);
}