0023712: Remove dependency on Aspect_GraphicDevice from Aspect_Window
[occt.git] / samples / mfc / standard / Common / Primitive / Sample2D_Image.h
CommitLineData
7fd59977 1#ifndef _Sample2D_Image_HeaderFile
2#define _Sample2D_Image_HeaderFile
3#include <Standard_Macro.hxx>
4#include <Standard_DefineHandle.hxx>
5
6#include <OSD_File.hxx>
7#include <Quantity_Length.hxx>
8#include <Aspect_CardinalPoints.hxx>
9#include <Quantity_Factor.hxx>
10#include <Standard_Boolean.hxx>
11#include <Standard_CString.hxx>
7fd59977 12#include <Standard_Integer.hxx>
13#include <Handle_SelectMgr_Selection.hxx>
14#include <Standard_OStream.hxx>
15#include <Standard_IStream.hxx>
7fd59977 16
17DEFINE_STANDARD_HANDLE(Sample2D_Image,AIS2D_InteractiveObject)
18class Sample2D_Image : public AIS2D_InteractiveObject {
19
20public:
21
22 // Methods PUBLIC
23 //
24Standard_EXPORT Sample2D_Image(OSD_File& aFile,
25 const Quantity_Length X = 0.0,
26 const Quantity_Length Y = 0.0,
27 const Quantity_Length adx = 0.0,
28 const Quantity_Length ady = 0.0,
29 const Aspect_CardinalPoints aTypeOfPlacement = Aspect_CP_Center,
30 const Quantity_Factor aScale = 1.0);
31Standard_EXPORT Sample2D_Image(Standard_CString& aFileName,
32 const Quantity_Length X = 0.0,
33 const Quantity_Length Y = 0.0,
34 const Quantity_Length adx = 0.0,
35 const Quantity_Length ady = 0.0,
36 const Aspect_CardinalPoints aTypeOfPlacement = Aspect_CP_Center,
37 const Quantity_Factor aScale = 1.0);
38Standard_EXPORT inline virtual OSD_File GetFile() const;
39Standard_EXPORT inline virtual void SetFile(const OSD_File& anImage) ;
40Standard_EXPORT virtual Standard_CString GetFileName() const;
41Standard_EXPORT virtual void SetFileName(const Standard_CString anImageName) ;
42Standard_EXPORT inline virtual void GetCoord(Quantity_Length& X,Quantity_Length& Y) const;
43Standard_EXPORT inline virtual void SetCoord(const Quantity_Length X,const Quantity_Length Y) ;
44Standard_EXPORT inline virtual void GetOffset(Quantity_Length& adX,Quantity_Length& adY) const;
45Standard_EXPORT inline virtual void SetOffset(const Quantity_Length adX,const Quantity_Length adY) ;
46Standard_EXPORT inline virtual Aspect_CardinalPoints GetTypeOfPlacement() const;
47Standard_EXPORT inline virtual void SetTypeOfPlacement(const Aspect_CardinalPoints aTypeOfPlacement = Aspect_CP_Center) ;
48Standard_EXPORT inline Quantity_Factor GetScale() const;
49Standard_EXPORT inline void SetScale(const Quantity_Factor aNewScale) ;
50Standard_EXPORT inline Standard_Boolean GetIsZoomable() const;
51Standard_EXPORT inline void SetIsZoomable(const Standard_Boolean aIsZoomable) ;
52
53Standard_EXPORT virtual void SetContext(const Handle(AIS2D_InteractiveContext)& theContext) ;
54
55DEFINE_STANDARD_RTTI(Sample2D_Image)
56
57protected:
58
59 // Methods PROTECTED
60 //
61
62 // Fields PROTECTED
63 //
64OSD_File myFile;
65Quantity_Length myX;
66Quantity_Length myY;
67Quantity_Length myDx;
68Quantity_Length myDy;
69Aspect_CardinalPoints myTypeOfPlacement;
70Quantity_Factor myScale;
71Standard_Boolean myIsZoomable;
72
73private:
74
75 // Methods PRIVATE
76 //
77
78 // Fields PRIVATE
79 //
80
81};
82
83// other inline functions and methods (like "C++: function call" methods)
84//
85
86inline void Sample2D_Image::GetCoord(Quantity_Length& X, Quantity_Length& Y) const
87{
88 X = myX;
89 Y = myY;
90}
91
92inline void Sample2D_Image::SetCoord(const Quantity_Length X, const Quantity_Length Y)
93{
94 myX = X;
95 myY = Y;
96}
97
98inline OSD_File Sample2D_Image::GetFile() const
99{
100 return myFile;
101}
102
103inline void Sample2D_Image::SetFile(const OSD_File& aFile)
104{
105 myFile = aFile;
106}
107
108inline void Sample2D_Image::GetOffset(Quantity_Length& adX,Quantity_Length& adY) const
109{
110 adX = myDx;
111 adY = myDy;
112}
113
114inline void Sample2D_Image::SetOffset(const Quantity_Length adX,const Quantity_Length adY)
115{
116 myDx = adX;
117 myDy = adY;
118}
119
120inline Aspect_CardinalPoints Sample2D_Image::GetTypeOfPlacement() const
121{
122 return myTypeOfPlacement;
123}
124
125inline void Sample2D_Image::SetTypeOfPlacement(const Aspect_CardinalPoints aTypeOfPlacement)
126{
127 myTypeOfPlacement = aTypeOfPlacement;
128}
129
130
131inline Quantity_Factor Sample2D_Image::GetScale() const
132{
133 return myScale;
134}
135
136inline void Sample2D_Image::SetScale(const Quantity_Factor aNewScale)
137{
138 myScale = aNewScale;
139}
140
141inline Standard_Boolean Sample2D_Image::GetIsZoomable() const
142{
143 return myIsZoomable;
144}
145
146inline void Sample2D_Image::SetIsZoomable(const Standard_Boolean aIsZoomable)
147{
148 myIsZoomable = aIsZoomable;
149}
150
151
152#endif