summaryrefslogtreecommitdiff
path: root/inc/IntTools_Root.hxx
blob: ff43d3e0a8889dea3c66b79cb1a82345ed71a226 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _IntTools_Root_HeaderFile
#define _IntTools_Root_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _TopAbs_State_HeaderFile
#include <TopAbs_State.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif


//! The class is to describe the root of <br>
//!          function of one variable  for  Edge/Edge <br>
//!          and  Edge/Surface  algorithms. <br>
class IntTools_Root  {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  
//! Empty constructor <br>
  Standard_EXPORT   IntTools_Root();
  
//! Initializes my by range of parameters <br>
//! and type of root <br>
  Standard_EXPORT   IntTools_Root(const Standard_Real aRoot,const Standard_Integer aType);
  
//! Sets the Root's value <br>
  Standard_EXPORT     void SetRoot(const Standard_Real aRoot) ;
  
//! Sets the Root's Type <br>
  Standard_EXPORT     void SetType(const Standard_Integer aType) ;
  
//! Set  the  value of the state before the root <br>
//! (at  t=Root-dt) <br>
  Standard_EXPORT     void SetStateBefore(const TopAbs_State aState) ;
  
//! Set  the  value of the state after the root <br>
//! (at  t=Root-dt) <br>
  Standard_EXPORT     void SetStateAfter(const TopAbs_State aState) ;
  
//! Not  used  in  Edge/Edge  algorithm <br>
  Standard_EXPORT     void SetLayerHeight(const Standard_Real aHeight) ;
  
//! Sets the  interval  from which the Root was <br>
//! found [t1,t2] and the  corresponding  values <br>
//! of  the  function  on  the  bounds f(t1), f(t2). <br>
  Standard_EXPORT     void SetInterval(const Standard_Real t1,const Standard_Real t2,const Standard_Real f1,const Standard_Real f2) ;
  
//! Returns the Root  value <br>
  Standard_EXPORT     Standard_Real Root() const;
  
//! Returns the  type  of  the  root <br>
//! =0  -  Simple (was  found  by  bisection  method); <br>
//! =2  -  Smart when f1=0, f2!=0 or  vice  versa <br>
//!        (was  found  by  Fibbonacci method); <br>
//! =1  -  Pure   (pure  zero  for all t [t1,t2] ); <br>
  Standard_EXPORT     Standard_Integer Type() const;
  
//! Returns the state before the root <br>
  Standard_EXPORT     TopAbs_State StateBefore() const;
  
//! Returns the state after the root <br>
  Standard_EXPORT     TopAbs_State StateAfter() const;
  
//! Not  used  in  Edge/Edge  algorithm <br>
  Standard_EXPORT     Standard_Real LayerHeight() const;
  
//! Returns the validity flag for the root, <br>
//! True if <br>
//! myStateBefore==TopAbs_OUT && myStateAfter==TopAbs_IN or <br>
//! myStateBefore==TopAbs_OUT && myStateAfter==TopAbs_ON or <br>
//! myStateBefore==TopAbs_ON  && myStateAfter==TopAbs_OUT or <br>
//! myStateBefore==TopAbs_IN  && myStateAfter==TopAbs_OUT  . <br>
//! For  other  cases it  returns  False. <br>
  Standard_EXPORT     Standard_Boolean IsValid() const;
  
//! Returns the values of interval  from which the Root was <br>
//! found [t1,t2] and the  corresponding  values <br>
//! of  the  function  on  the  bounds f(t1), f(t2). <br>
  Standard_EXPORT     void Interval(Standard_Real& t1,Standard_Real& t2,Standard_Real& f1,Standard_Real& f2) const;





protected:





private:



Standard_Real myRoot;
Standard_Integer myType;
Standard_Real myLayerHeight;
TopAbs_State myStateBefore;
TopAbs_State myStateAfter;
Standard_Real myt1;
Standard_Real myt2;
Standard_Real myf1;
Standard_Real myf2;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif