summaryrefslogtreecommitdiff
path: root/inc/AIS_ConnectedShape.hxx
blob: 33ecf80940b2fa08cf503db8291e4e63e3d95efe (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
167
168
169
170
171
// 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 _AIS_ConnectedShape_HeaderFile
#define _AIS_ConnectedShape_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_AIS_ConnectedShape_HeaderFile
#include <Handle_AIS_ConnectedShape.hxx>
#endif

#ifndef _TopoDS_Shape_HeaderFile
#include <TopoDS_Shape.hxx>
#endif
#ifndef _AIS_ConnectedInteractive_HeaderFile
#include <AIS_ConnectedInteractive.hxx>
#endif
#ifndef _PrsMgr_TypeOfPresentation3d_HeaderFile
#include <PrsMgr_TypeOfPresentation3d.hxx>
#endif
#ifndef _Handle_AIS_Shape_HeaderFile
#include <Handle_AIS_Shape.hxx>
#endif
#ifndef _AIS_KindOfInteractive_HeaderFile
#include <AIS_KindOfInteractive.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_AIS_InteractiveObject_HeaderFile
#include <Handle_AIS_InteractiveObject.hxx>
#endif
#ifndef _Handle_Prs3d_Projector_HeaderFile
#include <Handle_Prs3d_Projector.hxx>
#endif
#ifndef _Handle_Prs3d_Presentation_HeaderFile
#include <Handle_Prs3d_Presentation.hxx>
#endif
#ifndef _Handle_Geom_Transformation_HeaderFile
#include <Handle_Geom_Transformation.hxx>
#endif
#ifndef _Handle_PrsMgr_PresentationManager3d_HeaderFile
#include <Handle_PrsMgr_PresentationManager3d.hxx>
#endif
#ifndef _Handle_SelectMgr_Selection_HeaderFile
#include <Handle_SelectMgr_Selection.hxx>
#endif
#ifndef _Handle_PrsMgr_PresentationManager2d_HeaderFile
#include <Handle_PrsMgr_PresentationManager2d.hxx>
#endif
#ifndef _Handle_Graphic2d_GraphicObject_HeaderFile
#include <Handle_Graphic2d_GraphicObject.hxx>
#endif
class Standard_NotImplemented;
class AIS_Shape;
class AIS_InteractiveObject;
class TopLoc_Location;
class Prs3d_Projector;
class Prs3d_Presentation;
class Geom_Transformation;
class PrsMgr_PresentationManager3d;
class SelectMgr_Selection;
class PrsMgr_PresentationManager2d;
class Graphic2d_GraphicObject;
class TopoDS_Shape;


//! Constructs a Connected Interactive Object with an <br>
//! AIS_Shape presentation as its reference Interactive Object. <br>
//! In topological decomposition of the shape, this class <br>
//! assigns the same owners to the sensitive primitives <br>
//! as those in AIS_Shape. Like AIS_Shape, it allows a <br>
//! presentation of hidden parts. These are calculated <br>
//! automatically from the shape of its reference entity. <br>
class AIS_ConnectedShape : public AIS_ConnectedInteractive {

public:

  //! Initializes the type of 3d presentation aTypeOfPresentation <br>
  Standard_EXPORT   AIS_ConnectedShape(const PrsMgr_TypeOfPresentation3d aTypeOfPresentation = PrsMgr_TOP_ProjectorDependant);
  //! Initializes the entity aInteractiveShape and the type of 3d presentation aTypeOfPresentation. <br>
  Standard_EXPORT   AIS_ConnectedShape(const Handle(AIS_Shape)& aInteractiveShape,const PrsMgr_TypeOfPresentation3d aTypeOfPresentation = PrsMgr_TOP_ProjectorDependant);
  //! Initializes the entity aConnectedShape and the type of 3d presentation aTypeOfPresentation. <br>
  Standard_EXPORT   AIS_ConnectedShape(const Handle(AIS_ConnectedShape)& aConnectedShape,const PrsMgr_TypeOfPresentation3d aTypeOfPresentation = PrsMgr_TOP_ProjectorDependant);
  
  Standard_EXPORT   virtual  AIS_KindOfInteractive Type() const;
  
  Standard_EXPORT   virtual  Standard_Integer Signature() const;
  
  Standard_EXPORT   virtual  Standard_Boolean AcceptShapeDecomposition() const;
  //!  Establishes the connection between the Connected <br>
//! Interactive Object, anotherIobj, and its reference <br>
//! entity. If there is already a previous connection with <br>
//! an Interactive Object, this connection is removed. <br>
  Standard_EXPORT   virtual  void Connect(const Handle(AIS_InteractiveObject)& anotherIObj) ;
  //! Establishes the connection between the Connected <br>
//! Interactive Object, anotherIobj, and its reference <br>
//! entity. If there is already a previous connection with <br>
//! an Interactive Object, this connection is removed. <br>
//! This syntax also initiates the location of the Connected Interactive Object. <br>
  Standard_EXPORT   virtual  void Connect(const Handle(AIS_InteractiveObject)& anotherIobj,const TopLoc_Location& aLocation) ;
  //! this method is redefined virtual; <br>
//!          when the instance is connected to another <br>
//!          InteractiveObject,this method doesn't <br>
//!          compute anything, but just uses the <br>
//!          presentation of this last object, with <br>
//!          a transformation if there's one stored. <br>
  Standard_EXPORT   virtual  void Compute(const Handle(PrsMgr_PresentationManager3d)& aPresentationManager,const Handle(Prs3d_Presentation)& aPresentation,const Standard_Integer aMode = 0) ;
  //! this method should fill the presentation according to the <br>
//!          enumerated mode of the application and to the display parameter <br>
//!          of the application. <br>
  Standard_EXPORT   virtual  void Compute(const Handle(PrsMgr_PresentationManager2d)& aPresentationManager,const Handle(Graphic2d_GraphicObject)& aPresentation,const Standard_Integer aMode = 0) ;
  //! Returns the topological shape which is the reference <br>
//! for the connected shape. Sets hilight mode to index <br>
//! 0. This returns a wireframe presentation. <br>
  Standard_EXPORT    const TopoDS_Shape& Shape() ;




  DEFINE_STANDARD_RTTI(AIS_ConnectedShape)

protected:




private: 

  
  Standard_EXPORT   virtual  void Compute(const Handle(Prs3d_Projector)& aProjector,const Handle(Prs3d_Presentation)& aPresentation) ;
  
  Standard_EXPORT   virtual  void Compute(const Handle(Prs3d_Projector)& aProjector,const Handle(Geom_Transformation)& aTrsf,const Handle(Prs3d_Presentation)& aPresentation) ;
  
//! Recovers and calculates any sensitive primitive, <br>
//! aSelection, available in Shape mode, specified by <br>
//! aMode . As a rule, these are sensitive faces. <br>
//! This method is defined as virtual. This enables you to <br>
//! implement it in the creation of a new class of <br>
//! Interactive Object. You need to do this and in so <br>
//! doing, redefine this method, if you create a class <br>
//! which enriches the list of signatures and types. <br>
  Standard_EXPORT   virtual  void ComputeSelection(const Handle(SelectMgr_Selection)& aSelection,const Standard_Integer aMode) ;
  
  Standard_EXPORT     void UpdateShape(const Standard_Boolean WithLocation = Standard_True) ;
  
  Standard_EXPORT     void Compute(const Handle(Prs3d_Projector)& aProjector,const Handle(Prs3d_Presentation)& aPresentation,const TopoDS_Shape& aShape) ;

TopoDS_Shape myOwnSh;


};





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


#endif