// Created on: 1998-07-22
// Created by: Philippe MANGIN
// Copyright (c) 1998-1999 Matra Datavision
-// Copyright (c) 1999-2012 OPEN CASCADE SAS
+// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
+// This file is part of Open CASCADE Technology software library.
//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
+// 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.
//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
#include <stdio.h>
#include <BRepFill_ShapeLaw.hxx>
#include <BRepFill_CompatibleWires.hxx>
#include <BRepFill_NSections.hxx>
+#include <BRepFill_DataMapOfShapeHArray2OfShape.hxx>
#include <TColStd_HArray1OfReal.hxx>
#include <GeomFill_TrihedronLaw.hxx>
#include <StdFail_NotDone.hxx>
#include <BRepBuilderAPI_Copy.hxx>
+#include <BRepBuilderAPI_Transform.hxx>
#include <GProp_GProps.hxx>
#include <BRepGProp.hxx>
myLaw.Nullify();
SetTolerance();
+ myMaxDegree = 11;
+ myMaxSegments = 100;
+
// Attention to closed non-declared wire !
if (!mySpine.Closed()) {
TopoDS_Vertex Vf, Vl;
mySection.Nullify(); //It is required to relocalize the sections.
}
+
+//=======================================================================
+//function : SetMaxDegree
+//purpose :
+//=======================================================================
+void BRepFill_PipeShell::SetMaxDegree(const Standard_Integer NewMaxDegree)
+{
+ myMaxDegree = NewMaxDegree;
+}
+
+//=======================================================================
+//function : SetMaxSegments
+//purpose :
+//=======================================================================
+void BRepFill_PipeShell::SetMaxSegments(const Standard_Integer NewMaxSegments)
+{
+ myMaxSegments = NewMaxSegments;
+}
+
//=======================================================================
//function : SetForceApproxC1
//purpose : Set the flag that indicates attempt to approximate
GeomAbs_Shape theContinuity = GeomAbs_C2;
if (myTrihedron == GeomFill_IsDiscreteTrihedron)
theContinuity = GeomAbs_C0;
- MkSw.Build(myTransition, theContinuity);
+ TopTools_MapOfShape Dummy;
+ BRepFill_DataMapOfShapeHArray2OfShape Dummy2;
+ BRepFill_DataMapOfShapeHArray2OfShape Dummy3;
+ MkSw.Build(Dummy, Dummy2, Dummy3, myTransition, theContinuity,
+ GeomFill_Location, myMaxDegree, myMaxSegments);
myStatus = myLocation->GetStatus();
Ok = (MkSw.IsDone() && (myStatus == GeomFill_PipeOk));
if (Ok) {
myShape = MkSw.Shape();
+ myErrorOnSurf = MkSw.ErrorOnSurface();
TopoDS_Shape aBottomWire = myFirst;
TopoDS_Shape aTopWire = myLast;
return myShape;
}
+//=======================================================================
+//function : ErrorOnSurface
+//purpose :
+//=======================================================================
+
+Standard_Real BRepFill_PipeShell::ErrorOnSurface() const
+{
+ return myErrorOnSurf;
+}
+
//=======================================================================
//function : FirstShape
//purpose : Return the start section
Sec.Vertex(),
Sec.WithContact(),
Sec.WithCorrection());
- W = Sec.Wire();
+ TopoDS_Wire TmpWire = Sec.Wire();
aTrsf = Place.Transformation();
- TopLoc_Location Loc2(Place.Transformation()), Loc1;
- Loc1 = W.Location();
- W.Location(Loc2.Multiplied(Loc1));
+ //TopLoc_Location Loc2(Place.Transformation()), Loc1;
+ //Loc1 = TmpWire.Location();
+ //W.Location(Loc2.Multiplied(Loc1));
+ //Transform the copy
+ W = TopoDS::Wire(BRepBuilderAPI_Transform(TmpWire, aTrsf, Standard_True));
+ ////////////////////////////////////
param = Place.AbscissaOnPath();
}