0023024: Update headers of OCCT files
[occt.git] / src / BRepFill / BRepFill_Section.cxx
CommitLineData
b311480e 1// Created on: 1998-07-22
2// Created by: Philippe MANGIN
3// Copyright (c) 1998-1999 Matra Datavision
4// Copyright (c) 1999-2012 OPEN CASCADE SAS
5//
6// The content of this file is subject to the Open CASCADE Technology Public
7// License Version 6.5 (the "License"). You may not use the content of this file
8// except in compliance with the License. Please obtain a copy of the License
9// at http://www.opencascade.org and read it completely before using this file.
10//
11// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13//
14// The Original Code and all software distributed under the License is
15// distributed on an "AS IS" basis, without warranty of any kind, and the
16// Initial Developer hereby disclaims all such warranties, including without
17// limitation, any warranties of merchantability, fitness for a particular
18// purpose or non-infringement. Please see the License for the specific terms
19// and conditions governing the rights and limitations under the License.
20
7fd59977 21
22
23#include <BRepFill_Section.ixx>
24
25#include <TopoDS.hxx>
26#include <BRep_Builder.hxx>
27#include <TopoDS_Edge.hxx>
28
29
30BRepFill_Section::BRepFill_Section() :islaw(0), contact(0), correction(0)
31{
32}
33
34
35BRepFill_Section::BRepFill_Section(const TopoDS_Shape& Profile,
36 const TopoDS_Vertex& V,
37 const Standard_Boolean WithContact,
38 const Standard_Boolean WithCorrection)
39 : vertex(V),
40 islaw(0),contact(WithContact),
41 correction(WithCorrection)
42{
43 if (Profile.ShapeType() == TopAbs_WIRE)
44 wire = TopoDS::Wire(Profile);
45 else if (Profile.ShapeType() == TopAbs_VERTEX)
46 {
47 TopoDS_Vertex aVertex = TopoDS::Vertex(Profile);
48 BRep_Builder BB;
49
50 TopoDS_Edge DegEdge;
51 BB.MakeEdge( DegEdge );
52 BB.Add( DegEdge, aVertex.Oriented(TopAbs_FORWARD) );
53 BB.Add( DegEdge, aVertex.Oriented(TopAbs_REVERSED) );
54 BB.Degenerated( DegEdge, Standard_True );
55 DegEdge.Closed( Standard_True );
56
57 BB.MakeWire( wire );
58 BB.Add( wire, DegEdge );
59 wire.Closed( Standard_True );
60 }
61 else
62 Standard_Failure::Raise("BRepFill_Section: bad shape type of section");
63}
64
65void BRepFill_Section::Set(const Standard_Boolean IsLaw)
66{
67 islaw = IsLaw;
68}