summaryrefslogtreecommitdiff
path: root/inc/HLRAlgo.hxx
blob: 473183fe580cd020629bea9d69b371916f163d03 (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
// 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 _HLRAlgo_HeaderFile
#define _HLRAlgo_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_Address_HeaderFile
#include <Standard_Address.hxx>
#endif
class HLRAlgo_BiPoint;
class HLRAlgo_ListOfBPoint;
class HLRAlgo_PolyShellData;
class HLRAlgo_PolyInternalData;
class HLRAlgo_PolyInternalSegment;
class HLRAlgo_PolyInternalNode;
class HLRAlgo_PolyData;
class HLRAlgo_PolyHidingData;
class HLRAlgo_TriangleData;
class HLRAlgo_Array1OfPHDat;
class HLRAlgo_HArray1OfPHDat;
class HLRAlgo_Array1OfPISeg;
class HLRAlgo_HArray1OfPISeg;
class HLRAlgo_Array1OfPINod;
class HLRAlgo_HArray1OfPINod;
class HLRAlgo_Array1OfTData;
class HLRAlgo_HArray1OfTData;
class HLRAlgo_PolyAlgo;
class HLRAlgo_EdgeStatus;
class HLRAlgo_Projector;
class HLRAlgo_Intersection;
class HLRAlgo_Coincidence;
class HLRAlgo_Interference;
class HLRAlgo_InterferenceList;
class HLRAlgo_EdgesBlock;
class HLRAlgo_WiresBlock;
class HLRAlgo_EdgeIterator;
class HLRAlgo_ListNodeOfListOfBPoint;
class HLRAlgo_ListIteratorOfListOfBPoint;
class HLRAlgo_ListNodeOfInterferenceList;
class HLRAlgo_ListIteratorOfInterferenceList;


//!        In order to have the precision required in <br>
//! industrial design, drawings need to offer the <br>
//! possibility of removing lines, which are hidden <br>
//! in a given projection. To do this, the Hidden <br>
//! Line Removal component provides two <br>
//!   algorithms: HLRBRep_Algo and HLRBRep_PolyAlgo. <br>
//! These algorithms remove or indicate lines <br>
//! hidden by surfaces. For a given projection, they <br>
//! calculate a set of lines characteristic of the <br>
//! object being represented. They are also used <br>
//! in conjunction with extraction utilities, which <br>
//! reconstruct a new, simplified shape from a <br>
//! selection of calculation results. This new shape <br>
//! is made up of edges, which represent the lines <br>
//! of the visualized shape in a plane. This plane is the projection plane. <br>
//! HLRBRep_Algo takes into account the shape <br>
//! itself. HLRBRep_PolyAlgo works with a <br>
//! polyhedral simplification of the shape. When <br>
//! you use HLRBRep_Algo, you obtain an exact <br>
//! result, whereas, when you use <br>
//! HLRBRep_PolyAlgo, you reduce computation <br>
//! time but obtain polygonal segments. <br>
class HLRAlgo  {
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   static  void UpdateMinMax(const Standard_Real x,const Standard_Real y,const Standard_Real z,const Standard_Address Min,const Standard_Address Max) ;
  
  Standard_EXPORT   static  void EnlargeMinMax(const Standard_Real tol,const Standard_Address Min,const Standard_Address Max) ;
  
  Standard_EXPORT   static  void InitMinMax(const Standard_Real Big,const Standard_Address Min,const Standard_Address Max) ;
  
  Standard_EXPORT   static  void EncodeMinMax(const Standard_Address Min,const Standard_Address Max,const Standard_Address MinMax) ;
  
  Standard_EXPORT   static  Standard_Real SizeBox(const Standard_Address Min,const Standard_Address Max) ;
  
  Standard_EXPORT   static  void DecodeMinMax(const Standard_Address MinMax,const Standard_Address Min,const Standard_Address Max) ;
  
  Standard_EXPORT   static  void CopyMinMax(const Standard_Address IMin,const Standard_Address IMax,const Standard_Address OMin,const Standard_Address OMax) ;
  
  Standard_EXPORT   static  void AddMinMax(const Standard_Address IMin,const Standard_Address IMax,const Standard_Address OMin,const Standard_Address OMax) ;





protected:





private:




friend class HLRAlgo_BiPoint;
friend class HLRAlgo_ListOfBPoint;
friend class HLRAlgo_PolyShellData;
friend class HLRAlgo_PolyInternalData;
friend class HLRAlgo_PolyInternalSegment;
friend class HLRAlgo_PolyInternalNode;
friend class HLRAlgo_PolyData;
friend class HLRAlgo_PolyHidingData;
friend class HLRAlgo_TriangleData;
friend class HLRAlgo_Array1OfPHDat;
friend class HLRAlgo_HArray1OfPHDat;
friend class HLRAlgo_Array1OfPISeg;
friend class HLRAlgo_HArray1OfPISeg;
friend class HLRAlgo_Array1OfPINod;
friend class HLRAlgo_HArray1OfPINod;
friend class HLRAlgo_Array1OfTData;
friend class HLRAlgo_HArray1OfTData;
friend class HLRAlgo_PolyAlgo;
friend class HLRAlgo_EdgeStatus;
friend class HLRAlgo_Projector;
friend class HLRAlgo_Intersection;
friend class HLRAlgo_Coincidence;
friend class HLRAlgo_Interference;
friend class HLRAlgo_InterferenceList;
friend class HLRAlgo_EdgesBlock;
friend class HLRAlgo_WiresBlock;
friend class HLRAlgo_EdgeIterator;
friend class HLRAlgo_ListNodeOfListOfBPoint;
friend class HLRAlgo_ListIteratorOfListOfBPoint;
friend class HLRAlgo_ListNodeOfInterferenceList;
friend class HLRAlgo_ListIteratorOfInterferenceList;

};





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


#endif