0027232: Configuration - fix mblen missing building issue on Android
[occt.git] / src / HLRBRep / HLRBRep_InternalAlgo.hxx
CommitLineData
42cf5bc1 1// Created on: 1997-04-17
2// Created by: Christophe MARION
3// Copyright (c) 1997-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#ifndef _HLRBRep_InternalAlgo_HeaderFile
18#define _HLRBRep_InternalAlgo_HeaderFile
19
20#include <Standard.hxx>
21#include <Standard_Type.hxx>
22
23#include <HLRAlgo_Projector.hxx>
24#include <HLRBRep_SeqOfShapeBounds.hxx>
25#include <BRepTopAdaptor_MapOfShapeTool.hxx>
26#include <Standard_Boolean.hxx>
27#include <MMgt_TShared.hxx>
28#include <Standard_Integer.hxx>
29class HLRBRep_Data;
30class Standard_OutOfRange;
31class HLRAlgo_Projector;
32class HLRTopoBRep_OutLiner;
33class MMgt_TShared;
34class HLRBRep_ShapeBounds;
35
36
37class HLRBRep_InternalAlgo;
38DEFINE_STANDARD_HANDLE(HLRBRep_InternalAlgo, MMgt_TShared)
39
40
41class HLRBRep_InternalAlgo : public MMgt_TShared
42{
43
44public:
45
46
47 Standard_EXPORT HLRBRep_InternalAlgo();
48
49 Standard_EXPORT HLRBRep_InternalAlgo(const Handle(HLRBRep_InternalAlgo)& A);
50
51 //! set the projector.
52 Standard_EXPORT void Projector (const HLRAlgo_Projector& P);
53
54 //! set the projector.
55 Standard_EXPORT HLRAlgo_Projector& Projector();
56
57 //! update the DataStructure.
58 Standard_EXPORT void Update();
59
60 //! add the shape <S>.
61 Standard_EXPORT void Load (const Handle(HLRTopoBRep_OutLiner)& S, const Handle(MMgt_TShared)& SData, const Standard_Integer nbIso = 0);
62
63 //! add the shape <S>.
64 Standard_EXPORT void Load (const Handle(HLRTopoBRep_OutLiner)& S, const Standard_Integer nbIso = 0);
65
66 //! return the index of the Shape <S> and return 0 if
67 //! the Shape <S> is not found.
68 Standard_EXPORT Standard_Integer Index (const Handle(HLRTopoBRep_OutLiner)& S) const;
69
70 //! remove the Shape of Index <I>.
71 Standard_EXPORT void Remove (const Standard_Integer I);
72
73 //! Change the Shape Data of the Shape of index <I>.
74 Standard_EXPORT void ShapeData (const Standard_Integer I, const Handle(MMgt_TShared)& SData);
75
76 Standard_EXPORT HLRBRep_SeqOfShapeBounds& SeqOfShapeBounds();
77
78 Standard_EXPORT Standard_Integer NbShapes() const;
79
80 Standard_EXPORT HLRBRep_ShapeBounds& ShapeBounds (const Standard_Integer I);
81
82 //! init the status of the selected edges depending of
83 //! the back faces of a closed shell.
84 Standard_EXPORT void InitEdgeStatus();
85
86 //! select all the DataStructure.
87 Standard_EXPORT void Select();
88
89 //! select only the Shape of index <I>.
90 Standard_EXPORT void Select (const Standard_Integer I);
91
92 //! select only the edges of the Shape <S>.
93 Standard_EXPORT void SelectEdge (const Standard_Integer I);
94
95 //! select only the faces of the Shape <S>.
96 Standard_EXPORT void SelectFace (const Standard_Integer I);
97
98 //! set to visible all the edges.
99 Standard_EXPORT void ShowAll();
100
101 //! set to visible all the edges of the Shape <S>.
102 Standard_EXPORT void ShowAll (const Standard_Integer I);
103
104 //! set to hide all the edges.
105 Standard_EXPORT void HideAll();
106
107 //! set to hide all the edges of the Shape <S>.
108 Standard_EXPORT void HideAll (const Standard_Integer I);
109
110 //! own hiding of all the shapes of the DataStructure
111 //! without hiding by each other.
112 Standard_EXPORT void PartialHide();
113
114 //! hide all the DataStructure.
115 Standard_EXPORT void Hide();
116
117 //! hide the Shape <S> by itself.
118 Standard_EXPORT void Hide (const Standard_Integer I);
119
120 //! hide the Shape <S1> by the shape <S2>.
121 Standard_EXPORT void Hide (const Standard_Integer I, const Standard_Integer J);
122
123 Standard_EXPORT void Debug (const Standard_Boolean deb);
124
125 Standard_EXPORT Standard_Boolean Debug() const;
126
127 Standard_EXPORT Handle(HLRBRep_Data) DataStructure() const;
128
129
130
131
92efcf78 132 DEFINE_STANDARD_RTTIEXT(HLRBRep_InternalAlgo,MMgt_TShared)
42cf5bc1 133
134protected:
135
136
137
138
139private:
140
141
142 //! first if <SideFace> own hiding of the side faces.
143 //! After hiding of the selected parts of the
144 //! DataStructure.
145 Standard_EXPORT void HideSelected (const Standard_Integer I, const Standard_Boolean SideFace);
146
147 Handle(HLRBRep_Data) myDS;
148 HLRAlgo_Projector myProj;
149 HLRBRep_SeqOfShapeBounds myShapes;
150 BRepTopAdaptor_MapOfShapeTool myMapOfShapeTool;
151 Standard_Boolean myDebug;
152
153
154};
155
156
157
158
159
160
161
162#endif // _HLRBRep_InternalAlgo_HeaderFile