0029590: Coding - avoid usage of Standard_EXPORT attribute for inline methods
[occt.git] / src / GeomInt / GeomInt_TheMultiLineToolOfWLApprox.hxx
CommitLineData
42cf5bc1 1// Created on: 1995-01-27
2// Created by: Jacques GOUSSARD
3// Copyright (c) 1995-1999 Matra Datavision
4// Copyright (c) 1999-2014 OPEN CASCADE SAS
5//
6// This file is part of Open CASCADE Technology software library.
7//
8// This library is free software; you can redistribute it and/or modify it under
9// the terms of the GNU Lesser General Public License 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.
13//
14// Alternatively, this file may be used under the terms of Open CASCADE
15// commercial license or contractual agreement.
16
17#ifndef _GeomInt_TheMultiLineToolOfWLApprox_HeaderFile
18#define _GeomInt_TheMultiLineToolOfWLApprox_HeaderFile
19
20#include <Standard.hxx>
21#include <Standard_DefineAlloc.hxx>
22#include <Standard_Handle.hxx>
23
24#include <Standard_Integer.hxx>
25#include <TColgp_Array1OfPnt.hxx>
26#include <TColgp_Array1OfPnt2d.hxx>
27#include <Standard_Boolean.hxx>
28#include <TColgp_Array1OfVec.hxx>
29#include <TColgp_Array1OfVec2d.hxx>
30#include <GeomInt_TheMultiLineOfWLApprox.hxx>
31#include <Approx_Status.hxx>
32class GeomInt_TheMultiLineOfWLApprox;
33class ApproxInt_SvSurfaces;
34
35
36
37class GeomInt_TheMultiLineToolOfWLApprox
38{
39public:
40
41 DEFINE_STANDARD_ALLOC
42
43
36b9ff75 44 //! Returns the number of multipoints of the TheMultiLine.
42cf5bc1 45 static Standard_Integer FirstPoint (const GeomInt_TheMultiLineOfWLApprox& ML);
46
36b9ff75 47 //! Returns the number of multipoints of the TheMultiLine.
42cf5bc1 48 static Standard_Integer LastPoint (const GeomInt_TheMultiLineOfWLApprox& ML);
49
36b9ff75 50 //! Returns the number of 2d points of a TheMultiLine.
42cf5bc1 51 static Standard_Integer NbP2d (const GeomInt_TheMultiLineOfWLApprox& ML);
52
36b9ff75 53 //! Returns the number of 3d points of a TheMultiLine.
42cf5bc1 54 static Standard_Integer NbP3d (const GeomInt_TheMultiLineOfWLApprox& ML);
55
36b9ff75 56 //! returns the 3d points of the multipoint <MPointIndex>
57 //! when only 3d points exist.
42cf5bc1 58 static void Value (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfPnt& tabPt);
59
36b9ff75 60 //! returns the 2d points of the multipoint <MPointIndex>
61 //! when only 2d points exist.
42cf5bc1 62 static void Value (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfPnt2d& tabPt2d);
63
36b9ff75 64 //! returns the 3d and 2d points of the multipoint
65 //! <MPointIndex>.
42cf5bc1 66 static void Value (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfPnt& tabPt, TColgp_Array1OfPnt2d& tabPt2d);
67
36b9ff75 68 //! returns the 3d points of the multipoint <MPointIndex>
69 //! when only 3d points exist.
42cf5bc1 70 static Standard_Boolean Tangency (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV);
71
36b9ff75 72 //! returns the 2d tangency points of the multipoint
73 //! <MPointIndex> only when 2d points exist.
42cf5bc1 74 static Standard_Boolean Tangency (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec2d& tabV2d);
75
36b9ff75 76 //! returns the 3d and 2d points of the multipoint
77 //! <MPointIndex>.
42cf5bc1 78 static Standard_Boolean Tangency (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV, TColgp_Array1OfVec2d& tabV2d);
79
36b9ff75 80 //! returns the 3d curvature of the multipoint <MPointIndex>
81 //! when only 3d points exist.
42cf5bc1 82 static Standard_Boolean Curvature (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV);
83
36b9ff75 84 //! returns the 2d curvature points of the multipoint
85 //! <MPointIndex> only when 2d points exist.
42cf5bc1 86 static Standard_Boolean Curvature (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec2d& tabV2d);
87
36b9ff75 88 //! returns the 3d and 2d curvature of the multipoint
89 //! <MPointIndex>.
42cf5bc1 90 static Standard_Boolean Curvature (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV, TColgp_Array1OfVec2d& tabV2d);
91
36b9ff75 92 //! Is called if WhatStatus returned "PointsAdded".
42cf5bc1 93 static GeomInt_TheMultiLineOfWLApprox MakeMLBetween (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer I1, const Standard_Integer I2, const Standard_Integer NbPMin);
94
2c26a53d 95 //! Is called when the Bezier curve contains a loop
96 static Standard_Boolean MakeMLOneMorePoint (const GeomInt_TheMultiLineOfWLApprox& ML,
97 const Standard_Integer I1,
98 const Standard_Integer I2,
99 const Standard_Integer indbad,
100 GeomInt_TheMultiLineOfWLApprox& OtherLine);
101
42cf5bc1 102 static Approx_Status WhatStatus (const GeomInt_TheMultiLineOfWLApprox& ML, const Standard_Integer I1, const Standard_Integer I2);
103
36b9ff75 104 //! Dump of the current multi-line.
0f57ab75 105 static void Dump (const GeomInt_TheMultiLineOfWLApprox& ML);
42cf5bc1 106
107
108
109
110protected:
111
112
113
114
115
116private:
117
118
119
120
121
122};
123
124#define TheMultiLine GeomInt_TheMultiLineOfWLApprox
125#define TheMultiLine_hxx <GeomInt_TheMultiLineOfWLApprox.hxx>
126#define TheMultiMPoint ApproxInt_SvSurfaces
127#define TheMultiMPoint_hxx <ApproxInt_SvSurfaces.hxx>
128#define ApproxInt_MultiLineTool GeomInt_TheMultiLineToolOfWLApprox
129#define ApproxInt_MultiLineTool_hxx <GeomInt_TheMultiLineToolOfWLApprox.hxx>
130
131#include <ApproxInt_MultiLineTool.lxx>
132
133#undef TheMultiLine
134#undef TheMultiLine_hxx
135#undef TheMultiMPoint
136#undef TheMultiMPoint_hxx
137#undef ApproxInt_MultiLineTool
138#undef ApproxInt_MultiLineTool_hxx
139
140
141
142
143#endif // _GeomInt_TheMultiLineToolOfWLApprox_HeaderFile