0023948: Wrong intersection between a surface of revolution and a plane.
[occt.git] / src / StepGeom / StepGeom_CompositeCurve.cxx
1 // Copyright (c) 1999-2014 OPEN CASCADE SAS
2 //
3 // This file is part of Open CASCADE Technology software library.
4 //
5 // This library is free software; you can redistribute it and/or modify it under
6 // the terms of the GNU Lesser General Public License version 2.1 as published
7 // by the Free Software Foundation, with special exception defined in the file
8 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
9 // distribution for complete text of the license and disclaimer of any warranty.
10 //
11 // Alternatively, this file may be used under the terms of Open CASCADE
12 // commercial license or contractual agreement.
13
14 #include <StepGeom_CompositeCurve.ixx>
15
16
17 StepGeom_CompositeCurve::StepGeom_CompositeCurve ()  {}
18
19 void StepGeom_CompositeCurve::Init(
20         const Handle(TCollection_HAsciiString)& aName)
21 {
22
23         StepRepr_RepresentationItem::Init(aName);
24 }
25
26 void StepGeom_CompositeCurve::Init(
27         const Handle(TCollection_HAsciiString)& aName,
28         const Handle(StepGeom_HArray1OfCompositeCurveSegment)& aSegments,
29         const StepData_Logical aSelfIntersect)
30 {
31         // --- classe own fields ---
32         segments = aSegments;
33         selfIntersect = aSelfIntersect;
34         // --- classe inherited fields ---
35         StepRepr_RepresentationItem::Init(aName);
36 }
37
38
39 void StepGeom_CompositeCurve::SetSegments(const Handle(StepGeom_HArray1OfCompositeCurveSegment)& aSegments)
40 {
41         segments = aSegments;
42 }
43
44 Handle(StepGeom_HArray1OfCompositeCurveSegment) StepGeom_CompositeCurve::Segments() const
45 {
46         return segments;
47 }
48
49 Handle(StepGeom_CompositeCurveSegment) StepGeom_CompositeCurve::SegmentsValue(const Standard_Integer num) const
50 {
51         return segments->Value(num);
52 }
53
54 Standard_Integer StepGeom_CompositeCurve::NbSegments () const
55 {
56         if (segments.IsNull()) return 0;
57         return segments->Length();
58 }
59
60 void StepGeom_CompositeCurve::SetSelfIntersect(const StepData_Logical aSelfIntersect)
61 {
62         selfIntersect = aSelfIntersect;
63 }
64
65 StepData_Logical StepGeom_CompositeCurve::SelfIntersect() const
66 {
67         return selfIntersect;
68 }