zjf
2023-03-06 392b76515f40376b6d36f40a114850ef63650384
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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
/////////////////////////////////////////////////////////////////////////////// 
// Copyright (C) 2002-2016, Open Design Alliance (the "Alliance"). 
// All rights reserved. 
// 
// This software and its documentation and related materials are owned by 
// the Alliance. The software may only be incorporated into application 
// programs owned by members of the Alliance, subject to a signed 
// Membership Agreement and Supplemental Software License Agreement with the
// Alliance. The structure and organization of this software are the valuable  
// trade secrets of the Alliance and its suppliers. The software is also 
// protected by copyright law and international treaty provisions. Application  
// programs incorporating this software must include the following statement 
// with their copyright notices:
//   
//   This application incorporates Teigha(R) software pursuant to a license 
//   agreement with Open Design Alliance.
//   Teigha(R) Copyright (C) 2002-2016 by Open Design Alliance. 
//   All rights reserved.
//
// By use of this software, its documentation or related materials, you 
// acknowledge and accept the above terms.
///////////////////////////////////////////////////////////////////////////////
 
 
 
 
#ifndef __IMGVARS_H
#define __IMGVARS_H /*!DOM*/
 
#include "TD_PackPush.h"
 
class OdDbRasterVariables;
 
#include "DbRasterImageDef.h"
 
/** \details
    This template class is a specialization of the OdSmartPtr class for OdDbRasterVariables object pointers.
*/
typedef OdSmartPtr<OdDbRasterVariables> OdDbRasterVariablesPtr;
 
/** \details
    This class represents RasterVariables objects in an OdDbDatabase instance.
    
    \sa
    TD_Db
   
    \remarks
    RasterVariables objects contain settings applicable to raster images.   
    A single instance of this class is stored with every OdDbDatabase that contains raster images.
    
    <group OdDb_Classes>
*/
class TOOLKIT_EXPORT OdDbRasterVariables : public OdDbObject
{
public:  
  
  ODDB_DECLARE_MEMBERS(OdDbRasterVariables);
 
  OdDbRasterVariables();
  
  enum FrameSettings
  {
    kImageFrameInvalid  = -1, // Invalid
    kImageFrameOff      = 0,  // Frame is off
    kImageFrameAbove    = 1,  // Frame is above the image
    kImageFrameBelow    = 2,  // Frame is below the image
    kImageFrameOnNoPlot = 3   // New in R24 (AC24 support)
  };
 
  enum ImageQuality
  {
    kImageQualityInvalid  = -1, // Invalid
    kImageQualityDraft    = 0,  // Draft quality
    kImageQualityHigh     = 1   // High quality
  };
    
  virtual OdResult dwgInFields(
    OdDbDwgFiler* pFiler);
 
  virtual void dwgOutFields(
    OdDbDwgFiler* pFiler) const;
 
  virtual OdResult dxfInFields(
    OdDbDxfFiler* pFiler);
 
  virtual void dxfOutFields
    (OdDbDxfFiler* pFiler) const;
  
  /** \details
    Returns the image frame display (DXF 70).
    
    \remarks
    imageFrame() returns one of the following:
    
    <table>
    Name                  Value   Description
    kImageFrameInvalid    -1      Invalid
    kImageFrameOff        0       Frame is off
    kImageFrameAbove      1       Frame is above the image
    kImageFrameBelow      2       Frame is below the image
    </table>
    
  */
  virtual FrameSettings imageFrame() const;
 
  /** \details
    Sets the image frame display (DXF 70).
    
    \param imageFrame [in]  Image frame display.
 
    \remarks
    imageFrame must be one of the following:
    
    <table>
    Name                  Value   Description
    kImageFrameOff        0       Frame is off
    kImageFrameAbove      1       Frame is above the image
    kImageFrameBelow      2       Frame is below the image
    </table>
  */
  virtual void setImageFrame( 
    FrameSettings imageFrame );
 
  /** \details
    Returns the image display quality (DXF 71).
 
    \remarks
    imageQuality() returns one of the following:
    
    <table>
    Name                    Value   Description
    kImageQualityInvalid    -1      Invalid
    kImageQualityDraft       0      Draft quality
    kImageQualityHigh        1      High quality
    </table>
  */
  virtual ImageQuality imageQuality() const;
 
  /** \details
    Sets the image display quality (DXF 71).
    \param imageQuality [in]  Image Quality.
 
    \remarks
    imageQuality must be one of the following:
    
    <table>
    Name                    Value   Description
    kImageQualityInvalid    -1      Invalid
    kImageQualityDraft       0      Draft quality
    kImageQualityHigh        1      High quality
    </table>
  */
  virtual void setImageQuality(
    ImageQuality imageQuality );
  
  /** \details
    Returns the real-world units corresponding to drawing units (DXF 72).
 
    \remarks
    units() returns one of the following:
    
    <table>
    Name                                 Value
    OdDbRasterImageDef::kNone            0 
    OdDbRasterImageDef::kMillimeter      1 
    OdDbRasterImageDef::kCentimeter      2 
    OdDbRasterImageDef::kMeter           3 
    OdDbRasterImageDef::kKilometer       4 
    OdDbRasterImageDef::kInch            5 
    OdDbRasterImageDef::kFoot            6 
    OdDbRasterImageDef::kYard            7 
    OdDbRasterImageDef::kMile            8 
    OdDbRasterImageDef::kMicroinches     9 
    OdDbRasterImageDef::kMils            10 
    OdDbRasterImageDef::kAngstroms       11 
    OdDbRasterImageDef::kNanometers      12 
    OdDbRasterImageDef::kMicrons         13 
    OdDbRasterImageDef::kDecimeters      14 
    OdDbRasterImageDef::kDekameters      15 
    OdDbRasterImageDef::kHectometers     16 
    OdDbRasterImageDef::kGigameters      17 
    OdDbRasterImageDef::kAstronomical    18 
    OdDbRasterImageDef::kLightYears      19 
    OdDbRasterImageDef::kParsecs         20
    </table>
  */
  virtual OdDbRasterImageDef::Units userScale() const;
 
  /** \details
    Specifies the real-world units corresponding to drawing units  (DXF 72).
    
    \param units [in]  Real-world units.
    
    \remarks
    units must be one of the following:
    
    <table>
    Name                                 Value
    OdDbRasterImageDef::kNone            0 
    OdDbRasterImageDef::kMillimeter      1 
    OdDbRasterImageDef::kCentimeter      2 
    OdDbRasterImageDef::kMeter           3 
    OdDbRasterImageDef::kKilometer       4 
    OdDbRasterImageDef::kInch            5 
    OdDbRasterImageDef::kFoot            6 
    OdDbRasterImageDef::kYard            7 
    OdDbRasterImageDef::kMile            8 
    OdDbRasterImageDef::kMicroinches     9 
    OdDbRasterImageDef::kMils            10 
    OdDbRasterImageDef::kAngstroms       11 
    OdDbRasterImageDef::kNanometers      12 
    OdDbRasterImageDef::kMicrons         13 
    OdDbRasterImageDef::kDecimeters      14 
    OdDbRasterImageDef::kDekameters      15 
    OdDbRasterImageDef::kHectometers     16 
    OdDbRasterImageDef::kGigameters      17 
    OdDbRasterImageDef::kAstronomical    18 
    OdDbRasterImageDef::kLightYears      19 
    OdDbRasterImageDef::kParsecs         20
    </table>
  */
  virtual void setUserScale(
    OdDbRasterImageDef::Units units);
  
  /** \details
    Opens the RasterVariables object in the specified database.
    
    \param openMode [in]  Mode in which to open the RasterVariables object.
    \param pDb [in]  Pointer to the database containg the RasterVariables object.
 
 
    \remarks
    Returns a SmartPointer to the RasterVariables object.
 
    Creates a RasterVariables object if one does not exist.
  */
  static OdDbRasterVariablesPtr openRasterVariables(
    OdDbDatabase* pDb,
    OdDb::OpenMode openMode = OdDb::kForRead);
};
 
 
#include "TD_PackPop.h"
 
#endif // __IMGVARS_H