0023776: Redesign of MFC samples after V2d viewer removing
[occt.git] / samples / mfc / standard / Common / ISession2D / ISession2D_Shape.h
CommitLineData
7fd59977 1#ifndef _ISession2D_Shape_HeaderFile
2#define _ISession2D_Shape_HeaderFile
3
4#include <Standard_Macro.hxx>
5#include <Standard_DefineHandle.hxx>
6#include "TopoDS_Shape.hxx"
7
8#include "SelectMgr_SelectableObject.hxx"
5c1f974e 9#include "Graphic3d_ArrayOfPolylines.hxx"
7fd59977 10#include "AIS_InteractiveObject.hxx"
11
7fd59977 12#include <HLRAlgo_Projector.hxx>
13#include <HLRBRep_Algo.hxx>
14#include <HLRBRep_PolyAlgo.hxx>
15
16DEFINE_STANDARD_HANDLE(ISession2D_Shape,AIS_InteractiveObject)
17class ISession2D_Shape : public AIS_InteractiveObject {
18
19public:
20
21 // Methods PUBLIC
22 //
23Standard_EXPORT ISession2D_Shape ();
24void Standard_EXPORT Add(const TopoDS_Shape& aShape);
25
26DEFINE_STANDARD_RTTI(ISession2D_Shape)
27
28
29// myProjector
30HLRAlgo_Projector& Projector() { return myProjector;};
31Standard_EXPORT void SetProjector(HLRAlgo_Projector& aProjector);
32
33private:
34Standard_Integer myNbIsos;
35public :
36Standard_Integer& NbIsos() { return myNbIsos;};
37Standard_EXPORT void SetNbIsos(Standard_Integer& aNbIsos) ;
38
39Standard_Boolean AcceptShapeDecomposition() {return Standard_True;};
40
41virtual Standard_Boolean AcceptSelectionMode(const Standard_Integer aMode) const
42{return Standard_True; }
43
44
45private:
46
47 // Methods PRIVATE
48 //
49void BuildAlgo();
50void BuildPolyAlgo();
51
5c1f974e 52void DrawCompound(const Handle(Prs3d_Presentation)& thePresentation,const TopoDS_Shape& theCompound, const Handle(Prs3d_LineAspect) theAspect);
7fd59977 53
7fd59977 54
5c1f974e 55Standard_EXPORT virtual void Compute(const Handle(PrsMgr_PresentationManager3d)& aPresentationManager,const Handle(Prs3d_Presentation)& aPresentation,const Standard_Integer aMode = 0) ;
7fd59977 56
57virtual void ComputeSelection(const Handle(SelectMgr_Selection)& aSelection,const Standard_Integer aMode) ;
58
59private :
60TopTools_ListOfShape myListOfShape;
61HLRAlgo_Projector myProjector;
62Handle(HLRBRep_Algo) myAlgo;
63Handle(HLRBRep_PolyAlgo) myPolyAlgo;
64
65
66};
67
68
69// other inCurve functions and methods (like "C++: function call" methods)
70//
71
72
73
74#endif