summaryrefslogtreecommitdiff
path: root/inc/AIS2D_ProjShape.hxx
blob: e60c03f6c9d40dee56b19cc7cdd6b4d5dfc57807 (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
// 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 _AIS2D_ProjShape_HeaderFile
#define _AIS2D_ProjShape_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_AIS2D_ProjShape_HeaderFile
#include <Handle_AIS2D_ProjShape.hxx>
#endif

#ifndef _TopTools_ListOfShape_HeaderFile
#include <TopTools_ListOfShape.hxx>
#endif
#ifndef _HLRAlgo_Projector_HeaderFile
#include <HLRAlgo_Projector.hxx>
#endif
#ifndef _Handle_HLRBRep_Algo_HeaderFile
#include <Handle_HLRBRep_Algo.hxx>
#endif
#ifndef _Handle_HLRBRep_PolyAlgo_HeaderFile
#include <Handle_HLRBRep_PolyAlgo.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_Graphic2d_SetOfSegments_HeaderFile
#include <Handle_Graphic2d_SetOfSegments.hxx>
#endif
#ifndef _Handle_GGraphic2d_SetOfCurves_HeaderFile
#include <Handle_GGraphic2d_SetOfCurves.hxx>
#endif
#ifndef _AIS2D_InteractiveObject_HeaderFile
#include <AIS2D_InteractiveObject.hxx>
#endif
#ifndef _Handle_Graphic2d_Line_HeaderFile
#include <Handle_Graphic2d_Line.hxx>
#endif
class HLRBRep_Algo;
class HLRBRep_PolyAlgo;
class Graphic2d_SetOfSegments;
class GGraphic2d_SetOfCurves;
class HLRAlgo_Projector;
class TopoDS_Shape;
class Graphic2d_Line;


//! Constructs presentable and selectable projection of <br>
//!          TopoDS_Shape on the view plane <br>
class AIS2D_ProjShape : public AIS2D_InteractiveObject {

public:

  //! Initializes the projected shape <br>
  Standard_EXPORT   AIS2D_ProjShape();
  //! Initializes the projected shape with projector <aProjector>, number isolines <nbIsos> <br>
  Standard_EXPORT   AIS2D_ProjShape(const HLRAlgo_Projector& aProjector,const Standard_Integer nbIsos = 3,const Standard_Boolean isPolyAlgo = Standard_False,const Standard_Boolean visHL = Standard_True);
  //! Adds <aShape> to the list of projected shapes. <br>
  Standard_EXPORT     void Add(const TopoDS_Shape& aShape) ;
  //! sets the projector <aProjector> <br>
  Standard_EXPORT     void SetProjector(const HLRAlgo_Projector& aProjector) ;
  //! Indicates the projector <br>
  Standard_EXPORT     HLRAlgo_Projector Projector() const;
  
  Standard_EXPORT     void SetNbIsos(const Standard_Integer aNbIsos) ;
  //! sets the projection of the shape as a polyhedral <br>
//!          simplification of the shape if <aIsPoly> is True <br>
  Standard_EXPORT     void SetPolyAlgo(const Standard_Boolean aIsPoly = Standard_False) ;
  //! Sets the hidden line mode if <aIsHLM> is True <br>
  Standard_EXPORT     void SetHLMode(const Standard_Boolean aIsHLM = Standard_True) ;
  //! Indicates the hidden lines are visible <br>
  Standard_EXPORT     Standard_Boolean IsHLMode() const;
  //! Indicates the number of isolines <br>
  Standard_EXPORT     Standard_Integer GetNbIsos() const;
  //! Indicates the shape was extracted as Algo or PolyAlgo <br>
  Standard_EXPORT     Standard_Boolean GetIsPoly() const;
  //! Returns the set of primitives are included into Shape, <br>
//!          except hidden lines <br>
  Standard_EXPORT     Handle_Graphic2d_Line GetPrimitives() const;
  //! Returns the set of hidden line primitives are included into Shape <br>
  Standard_EXPORT     Handle_Graphic2d_Line GetHLPrimitives() const;
  //! Sets the flags for display of all types of edges <br>
  Standard_EXPORT     void ShowEdges(const Standard_Boolean aSharp = Standard_True,const Standard_Boolean aSmooth = Standard_True,const Standard_Boolean aSewn = Standard_True,const Standard_Boolean anOutline = Standard_True,const Standard_Boolean anIsoline = Standard_True) ;




  DEFINE_STANDARD_RTTI(AIS2D_ProjShape)

protected:




private: 

  
  Standard_EXPORT     void CreateAlgo() ;
  
  Standard_EXPORT     void CreatePolyAlgo() ;
  
  Standard_EXPORT     void DrawSegments(const TopoDS_Shape& aShape,Handle(Graphic2d_SetOfSegments)& aSofS) ;
  
  Standard_EXPORT     void DrawCurves(const TopoDS_Shape& aShape,Handle(GGraphic2d_SetOfCurves)& aSofC) ;
  
  Standard_EXPORT     void ComputeShape() ;

TopTools_ListOfShape myListOfShape;
HLRAlgo_Projector myProjector;
Handle_HLRBRep_Algo myAlgo;
Handle_HLRBRep_PolyAlgo myPolyAlgo;
Standard_Integer myNbIsos;
Standard_Boolean myIsPolyAlgo;
Standard_Boolean myIsHiddenLine;
Standard_Boolean myESharp;
Standard_Boolean myESmooth;
Standard_Boolean myESewn;
Standard_Boolean myEOutline;
Standard_Boolean myEIsoline;
Handle_Graphic2d_SetOfSegments mySetOfSegments;
Handle_Graphic2d_SetOfSegments myHSetOfSegments;
Handle_GGraphic2d_SetOfCurves mySetOfCurves;
Handle_GGraphic2d_SetOfCurves myHSetOfCurves;


};





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


#endif