summaryrefslogtreecommitdiff
path: root/inc/IntTools_ShrunkRange.hxx
blob: 276093b5636336ca0ac7cc80e3b057e7e3d9e28c (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
// 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_ShrunkRange_HeaderFile
#define _IntTools_ShrunkRange_HeaderFile

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

#ifndef _TopoDS_Edge_HeaderFile
#include <TopoDS_Edge.hxx>
#endif
#ifndef _TopoDS_Vertex_HeaderFile
#include <TopoDS_Vertex.hxx>
#endif
#ifndef _IntTools_Range_HeaderFile
#include <IntTools_Range.hxx>
#endif
#ifndef _Bnd_Box_HeaderFile
#include <Bnd_Box.hxx>
#endif
#ifndef _IntTools_PContext_HeaderFile
#include <IntTools_PContext.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
class TopoDS_Edge;
class TopoDS_Vertex;
class IntTools_Range;
class IntTools_Context;
class Bnd_Box;



//!  The class provides the computation of <br>
//!  a working (shrunk) range [t1, t2] for <br>
//!  the 3D-curve of the edge. <br>
class IntTools_ShrunkRange  {
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_ShrunkRange();
  
  Standard_EXPORT   IntTools_ShrunkRange(const TopoDS_Edge& aE,const TopoDS_Vertex& aV1,const TopoDS_Vertex& aV2,const IntTools_Range& aR,const IntTools_Context& ICtx);
  
//! Sets an shrunk range <br>
  Standard_EXPORT     void SetShrunkRange(const IntTools_Range& aR) ;
  
//! Returns shrunk range <br>
  Standard_EXPORT    const IntTools_Range& ShrunkRange() const;
  
//! Returns bounding box for edge restricted <br>
//! by shrunk range <br>
  Standard_EXPORT    const Bnd_Box& BndBox() const;
  
//! Returns edge for which <br>
//! the shrunk range is computed <br>
  Standard_EXPORT    const TopoDS_Edge& Edge() const;
  
//! Computes shrunk range for <br>
//! an edge given in constructor <br>
//! <br>
  Standard_EXPORT     void Perform() ;
  
//! Returns true if no error occured <br>
//! during shrunk range computation <br>
  Standard_EXPORT     Standard_Boolean IsDone() const;
  
//! Returns code of computing shrunk range <br>
//! completion <br>
//! 0 - means successful completion <br>
//! 1 - nothing has been done <br>
//! 2 - initial range is out of edge's range <br>
//! 3 - first boundary of initial range is more than <br>
//!     last boundary <br>
//! 4 - projection of first vertex failed <br>
//! 5 - projection of second vertex failed <br>
//! 6 - shrunk range can not be computed <br>
//!     shrunk range is setted to initial range <br>
  Standard_EXPORT     Standard_Integer ErrorStatus() const;





protected:





private:



TopoDS_Edge myEdge;
TopoDS_Vertex myV1;
TopoDS_Vertex myV2;
IntTools_Range myRange;
IntTools_Range myShrunkRange;
Bnd_Box myBndBox;
IntTools_PContext myCtx;
Standard_Boolean myIsDone;
Standard_Integer myErrorStatus;


};





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


#endif