0029915: Porting to VC 2017 : Regressions in Modeling Algorithms on VC 2017
[occt.git] / src / ApproxInt / ApproxInt_MultiLineTool.lxx
1 // Created on: 1993-03-30
2 // Created by: Laurent BUCHARD
3 // Copyright (c) 1993-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 #include TheMultiLine_hxx
18
19 #include <TColgp_Array1OfPnt.hxx>
20 #include <TColgp_Array1OfPnt2d.hxx>
21 #include <TColgp_Array1OfVec.hxx>
22 #include <TColgp_Array1OfVec2d.hxx>
23
24 #include <Approx_Status.hxx>
25
26 //================================================================================
27 inline Standard_Integer ApproxInt_MultiLineTool::NbP2d(const TheMultiLine& ML) { 
28   return(ML.NbP2d());
29 }
30 //--------------------------------------------------------------------------------
31 inline Standard_Integer ApproxInt_MultiLineTool::NbP3d(const TheMultiLine& ML) { 
32   return(ML.NbP3d()); 
33 }
34 //--------------------------------------------------------------------------------
35 inline Standard_Integer ApproxInt_MultiLineTool::FirstPoint(const TheMultiLine& ML) { 
36   return(ML.FirstPoint());
37 }
38 //--------------------------------------------------------------------------------
39 inline Standard_Integer ApproxInt_MultiLineTool::LastPoint(const TheMultiLine& ML) { 
40   return(ML.LastPoint());
41 }
42 //--------------------------------------------------------------------------------
43 inline void ApproxInt_MultiLineTool::Value( const TheMultiLine&     ML
44                                            ,const Standard_Integer Index
45                                            ,TColgp_Array1OfPnt&        TabPnt) { 
46   ML.Value(Index,TabPnt);
47 }
48 //--------------------------------------------------------------------------------
49 inline void ApproxInt_MultiLineTool::Value( const TheMultiLine&     ML
50                                            ,const Standard_Integer Index
51                                            ,TColgp_Array1OfPnt2d&       TabPnt2d) { 
52   ML.Value(Index,TabPnt2d);
53 }
54 //--------------------------------------------------------------------------------
55 inline void ApproxInt_MultiLineTool::Value( const TheMultiLine&     ML
56                                            ,const Standard_Integer Index
57                                            ,TColgp_Array1OfPnt&        TabPnt
58                                            ,TColgp_Array1OfPnt2d&      TabPnt2d) { 
59   ML.Value(Index,TabPnt,TabPnt2d);
60 }
61 //--------------------------------------------------------------------------------
62 inline Standard_Boolean ApproxInt_MultiLineTool::Tangency( const TheMultiLine&    ML
63                                                           ,const Standard_Integer Index
64                                                           ,TColgp_Array1OfVec&        TabVec) { 
65   return(ML.Tangency(Index,TabVec));
66 }
67 //--------------------------------------------------------------------------------
68 inline Standard_Boolean ApproxInt_MultiLineTool::Tangency( const TheMultiLine&     ML
69                                                           ,const Standard_Integer Index
70                                                           ,TColgp_Array1OfVec2d&      TabVec2d) { 
71   return(ML.Tangency(Index,TabVec2d));
72 }
73 //--------------------------------------------------------------------------------
74 inline Standard_Boolean ApproxInt_MultiLineTool::Tangency( const TheMultiLine&     ML
75                                                           ,const Standard_Integer Index
76                                                           ,TColgp_Array1OfVec&        TabVec
77                                                           ,TColgp_Array1OfVec2d&      TabVec2d) { 
78   return(ML.Tangency(Index,TabVec,TabVec2d));
79 }
80
81 //--------------------------------------------------------------------------------
82 inline Standard_Boolean ApproxInt_MultiLineTool::Curvature( const TheMultiLine&     //ML
83                                                           ,const Standard_Integer   //Index
84                                                           ,TColgp_Array1OfVec&  ) { //TabVec 
85   return Standard_False;
86 }
87 //--------------------------------------------------------------------------------
88 inline Standard_Boolean ApproxInt_MultiLineTool::Curvature( const TheMultiLine&      //ML
89                                                           ,const Standard_Integer    //Index
90                                                           ,TColgp_Array1OfVec2d& ) { //TabVec2d
91   return Standard_False;
92 }
93 //--------------------------------------------------------------------------------
94 inline Standard_Boolean ApproxInt_MultiLineTool::Curvature( const TheMultiLine&      //ML
95                                                           ,const Standard_Integer    //Index
96                                                           ,TColgp_Array1OfVec&       //TabVec
97                                                           ,TColgp_Array1OfVec2d& ) { //TabVec2d
98   return Standard_False;
99 }
100 //--------------------------------------------------------------------------------
101 inline Approx_Status ApproxInt_MultiLineTool::WhatStatus(const TheMultiLine& ML
102                                                          ,const Standard_Integer
103                                                          ,const Standard_Integer) { 
104   //--  PointsAdded,
105   //--  NoPointsAdded,
106   //--  NoApproximation
107   //--  Approx_PointsAdded
108   return(ML.WhatStatus());
109 }
110 //--------------------------------------------------------------------------------      
111 inline TheMultiLine ApproxInt_MultiLineTool::MakeMLBetween(const TheMultiLine& ML,
112                                                            const Standard_Integer I1,
113                                                            const Standard_Integer I2,
114                                                            const Standard_Integer NbPMin) { 
115   
116   return(ML.MakeMLBetween(I1,I2,NbPMin));
117 }
118 //--------------------------------------------------------------------------------      
119 inline Standard_Boolean ApproxInt_MultiLineTool::MakeMLOneMorePoint(const TheMultiLine& ML,
120                                                                     const Standard_Integer I1,
121                                                                     const Standard_Integer I2,
122                                                                     const Standard_Integer indbad,
123                                                                     TheMultiLine& OtherLine)
124
125   return (ML.MakeMLOneMorePoint(I1,I2,indbad,OtherLine));
126 }
127
128 inline void ApproxInt_MultiLineTool::Dump(const TheMultiLine& ML)
129
130   ML.Dump();
131 }
132 //================================================================================