summaryrefslogtreecommitdiff
path: root/inc/Intrv_Interval.hxx
blob: 07f483bc4815699f0f002dbee1ae943b6093996b (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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
// 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 _Intrv_Interval_HeaderFile
#define _Intrv_Interval_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_ShortReal_HeaderFile
#include <Standard_ShortReal.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Intrv_Position_HeaderFile
#include <Intrv_Position.hxx>
#endif



//!               **-----------****             Other <br>
//!   ***---*                                   IsBefore <br>
//!   ***----------*                            IsJustBefore <br>
//!   ***---------------*                       IsOverlappingAtStart <br>
//!   ***------------------------*              IsJustEnclosingAtEnd <br>
//!   ***-----------------------------------*   IsEnclosing <br>
//!              ***----*                       IsJustOverlappingAtStart <br>
//!              ***-------------*              IsSimilar <br>
//!              ***------------------------*   IsJustEnclosingAtStart <br>
//!                     ***-*                   IsInside <br>
//!                     ***------*              IsJustOverlappingAtEnd <br>
//!                     ***-----------------*   IsOverlappingAtEnd <br>
//!                              ***--------*   IsJustAfter <br>
//!                                   ***---*   IsAfter <br>
class Intrv_Interval  {
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); 
  }

  
  Standard_EXPORT   Intrv_Interval();
  
  Standard_EXPORT   Intrv_Interval(const Standard_Real Start,const Standard_Real End);
  
  Standard_EXPORT   Intrv_Interval(const Standard_Real Start,const Standard_ShortReal TolStart,const Standard_Real End,const Standard_ShortReal TolEnd);
  
        Standard_Real Start() const;
  
        Standard_Real End() const;
  
        Standard_ShortReal TolStart() const;
  
        Standard_ShortReal TolEnd() const;
  
        void Bounds(Standard_Real& Start,Standard_ShortReal& TolStart,Standard_Real& End,Standard_ShortReal& TolEnd) const;
  
        void SetStart(const Standard_Real Start,const Standard_ShortReal TolStart) ;
  
//!             ****+****-------------------->      Old one <br>
//!         ****+****------------------------>      New one to fuse <br>
//!         <<<     <<< <br>
//!         ****+****------------------------>      result <br>
        void FuseAtStart(const Standard_Real Start,const Standard_ShortReal TolStart) ;
  
//!                      ****+****----------->      Old one <br>
//!         <----------**+**                        Tool for cutting <br>
//!                    >>>     >>> <br>
//!                      ****+****----------->      result <br>
        void CutAtStart(const Standard_Real Start,const Standard_ShortReal TolStart) ;
  
        void SetEnd(const Standard_Real End,const Standard_ShortReal TolEnd) ;
  
//!         <---------------------****+****      Old one <br>
//!         <-----------------**+**              New one to fuse <br>
//!                             >>>     >>> <br>
//!         <---------------------****+****      result <br>
        void FuseAtEnd(const Standard_Real End,const Standard_ShortReal TolEnd) ;
  
//!         <-----****+****                      Old one <br>
//!                     **+**------>             Tool for cutting <br>
//!               <<<     <<< <br>
//!         <-----****+****                      result <br>
        void CutAtEnd(const Standard_Real End,const Standard_ShortReal TolEnd) ;
  //! True if myStart+myTolStart > myEnd-myTolEnd <br>
//!            or if myEnd+myTolEnd > myStart-myTolStart <br>
        Standard_Boolean IsProbablyEmpty() const;
  //! True if me is Before Other <br>
//!                 **-----------****             Other <br>
//!   ***-----*                                   Before <br>
//!   ***------------*                            JustBefore <br>
//!   ***-----------------*                       OverlappingAtStart <br>
//!   ***--------------------------*              JustEnclosingAtEnd <br>
//!   ***-------------------------------------*   Enclosing <br>
//!                ***----*                       JustOverlappingAtStart <br>
//!                ***-------------*              Similar <br>
//!                ***------------------------*   JustEnclosingAtStart <br>
//!                       ***-*                   Inside <br>
//!                       ***------*              JustOverlappingAtEnd <br>
//!                       ***-----------------*   OverlappingAtEnd <br>
//!                                ***--------*   JustAfter <br>
//!                                     ***---*   After <br>
  Standard_EXPORT     Intrv_Position Position(const Intrv_Interval& Other) const;
  //! True if me is Before Other <br>
//!          ***----------------**                              me <br>
//!                                  **-----------****          Other <br>
        Standard_Boolean IsBefore(const Intrv_Interval& Other) const;
  //! True if me is After Other <br>
//!                                  **-----------****          me <br>
//!          ***----------------**                              Other <br>
        Standard_Boolean IsAfter(const Intrv_Interval& Other) const;
  //! True if me is Inside Other <br>
//!                  **-----------****                          me <br>
//!          ***--------------------------**                    Other <br>
        Standard_Boolean IsInside(const Intrv_Interval& Other) const;
  //! True if me is Enclosing Other <br>
//!        ***----------------------------****                  me <br>
//!              ***------------------**                        Other <br>
        Standard_Boolean IsEnclosing(const Intrv_Interval& Other) const;
  //! True if me is just Enclosing Other at start <br>
//!               ***---------------------------****            me <br>
//!              ***------------------**                        Other <br>
        Standard_Boolean IsJustEnclosingAtStart(const Intrv_Interval& Other) const;
  //! True if me is just Enclosing Other at End <br>
//!        ***----------------------------****                  me <br>
//!                  ***-----------------****                   Other <br>
        Standard_Boolean IsJustEnclosingAtEnd(const Intrv_Interval& Other) const;
  //! True if me is just before Other <br>
//!        ***--------****                                      me <br>
//!                     ***-----------**                        Other <br>
        Standard_Boolean IsJustBefore(const Intrv_Interval& Other) const;
  //! True if me is just after Other <br>
//!                     ****-------****                         me <br>
//!        ***-----------**                                     Other <br>
        Standard_Boolean IsJustAfter(const Intrv_Interval& Other) const;
  //! True if me is overlapping Other at start <br>
//!        ***---------------***                                me <br>
//!                     ***-----------**                        Other <br>
        Standard_Boolean IsOverlappingAtStart(const Intrv_Interval& Other) const;
  //! True if me is overlapping Other at end <br>
//!                     ***-----------**                        me <br>
//!        ***---------------***                                Other <br>
        Standard_Boolean IsOverlappingAtEnd(const Intrv_Interval& Other) const;
  //! True if me is just overlapping Other at start <br>
//!        ***-----------***                                    me <br>
//!        ***------------------------**                        Other <br>
        Standard_Boolean IsJustOverlappingAtStart(const Intrv_Interval& Other) const;
  //! True if me is just overlapping Other at end <br>
//!                     ***-----------*                         me <br>
//!        ***------------------------**                        Other <br>
        Standard_Boolean IsJustOverlappingAtEnd(const Intrv_Interval& Other) const;
  //! True if me and Other have the same bounds <br>
//!         *----------------***                                me <br>
//!        ***-----------------**                               Other <br>
        Standard_Boolean IsSimilar(const Intrv_Interval& Other) const;





protected:





private:



Standard_Real myStart;
Standard_Real myEnd;
Standard_ShortReal myTolStart;
Standard_ShortReal myTolEnd;


};


#include <Intrv_Interval.lxx>



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


#endif