0031682: Visualization - Prs3d_ShadingAspect::SetTransparency() has no effect with...
[occt.git] / src / HLRAlgo / HLRAlgo_PolyAlgo.hxx
CommitLineData
42cf5bc1 1// Created on: 1992-02-18
2// Created by: Christophe MARION
3// Copyright (c) 1992-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 _HLRAlgo_PolyAlgo_HeaderFile
18#define _HLRAlgo_PolyAlgo_HeaderFile
19
681f3919 20#include <HLRAlgo_PolyData.hxx>
21
42cf5bc1 22#include <Standard.hxx>
23#include <Standard_Type.hxx>
24
25#include <TColStd_HArray1OfTransient.hxx>
26#include <Standard_Real.hxx>
27#include <HLRAlgo_ListIteratorOfListOfBPoint.hxx>
28#include <Standard_Integer.hxx>
29#include <Standard_Boolean.hxx>
25e59720 30#include <Standard_Transient.hxx>
42cf5bc1 31#include <TColStd_Array1OfTransient.hxx>
681f3919 32
42cf5bc1 33class HLRAlgo_EdgeStatus;
34
35
36class HLRAlgo_PolyAlgo;
25e59720 37DEFINE_STANDARD_HANDLE(HLRAlgo_PolyAlgo, Standard_Transient)
42cf5bc1 38
39//! to remove Hidden lines on Triangulations.
25e59720 40class HLRAlgo_PolyAlgo : public Standard_Transient
42cf5bc1 41{
42
43public:
44
45
46 Standard_EXPORT HLRAlgo_PolyAlgo();
47
48 Standard_EXPORT void Init (const Handle(TColStd_HArray1OfTransient)& HShell);
49
50 TColStd_Array1OfTransient& PolyShell() const;
51
52 Standard_EXPORT void Clear();
53
54 //! Prepare all the data to process the algo.
55 Standard_EXPORT void Update();
56
57 void InitHide();
58
59 Standard_Boolean MoreHide() const;
60
61 Standard_EXPORT void NextHide();
62
63 //! process hiding between <Pt1> and <Pt2>.
681f3919 64 Standard_EXPORT HLRAlgo_BiPoint::PointsT& Hide (HLRAlgo_EdgeStatus& status, Standard_Integer& Index, Standard_Boolean& reg1, Standard_Boolean& regn, Standard_Boolean& outl, Standard_Boolean& intl);
42cf5bc1 65
66 void InitShow();
67
68 Standard_Boolean MoreShow() const;
69
70 Standard_EXPORT void NextShow();
71
72 //! process hiding between <Pt1> and <Pt2>.
681f3919 73 Standard_EXPORT HLRAlgo_BiPoint::PointsT& Show (Standard_Integer& Index, Standard_Boolean& reg1, Standard_Boolean& regn, Standard_Boolean& outl, Standard_Boolean& intl);
42cf5bc1 74
75
76
77
25e59720 78 DEFINE_STANDARD_RTTIEXT(HLRAlgo_PolyAlgo,Standard_Transient)
42cf5bc1 79
80protected:
81
82
83
84
85private:
86
87
88 Handle(TColStd_HArray1OfTransient) myHShell;
681f3919 89 HLRAlgo_PolyData::Triangle myTriangle;
42cf5bc1 90 HLRAlgo_ListIteratorOfListOfBPoint mySegListIt;
91 Standard_Integer myNbrShell;
92 Standard_Integer myCurShell;
93 Standard_Boolean myFound;
94
95
96};
97
98
99#include <HLRAlgo_PolyAlgo.lxx>
100
101
102
103
104
105#endif // _HLRAlgo_PolyAlgo_HeaderFile