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
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
/////////////////////////////////////////////////////////////////////////////// 
// 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 OD_DBLAYOUT_H
#define OD_DBLAYOUT_H
 
#include "TD_PackPush.h"
 
#include "DbPlotSettings.h"
 
class OdGiRasterImage;
typedef OdSmartPtr<OdGiRasterImage> OdGiRasterImagePtr;
 
class OdString;
 
/** \details
    This class represents Layout objects in an OdDbDatabase instance.
    
    \sa
    TD_Db
   
    <group OdDb_Classes>
*/
class TOOLKIT_EXPORT OdDbLayout : public OdDbPlotSettings
{
public:
  ODDB_DECLARE_MEMBERS(OdDbLayout);
 
  /** \details
      Constructor (no arguments).
  */
  OdDbLayout();
 
  ///////// BEGIN ODA SPECIFIC /////////////
 
  /** \details
    Returns the minimum limits for this Layout object (DXF 10).
  */
  const OdGePoint2d& getLIMMIN() const;
 
  /** \details
    Sets the minimum limits for this Layout object (DXF 10).
    
    \param limMin [in]  Minimum limits.
  */
  void setLIMMIN(
    const OdGePoint2d& limMin);
 
  /** \details
    Returns the maximum limits for this Layout object (DXF 11).
  */
  const OdGePoint2d& getLIMMAX() const;
 
  /** \details
    Sets the maximum limits for this Layout object (DXF 11).
 
    \param limMax [in]  Maximum limits.
  */
  void setLIMMAX(
    const OdGePoint2d& limMax);
 
  /** \details
    Returns the minimum extents for this Layout object (DXF 14).
  */
  const OdGePoint3d& getEXTMIN() const;
 
  /** \details
    Sets the minimum extents for this Layout object (DXF 14).
    
    \param extMin [in]  Minimum extents.
  */
  void setEXTMIN(
    const OdGePoint3d& extMin);
 
  /** \details
    Returns the maximum extents for this Layout object (DXF 15).
  */
  const OdGePoint3d& getEXTMAX() const;
 
  /** \details
    Sets the maximum extents for this Layout object (DXF 15).
    
    \param extMax [in]  Maximum extents.
  */
  void setEXTMAX(
    const OdGePoint3d& extMax);
 
  /** \details
    Returns the insertion base for this Layout object (DXF 12).
  */
  const OdGePoint3d& getINSBASE() const;
 
  /** \details
    Sets the insertion base for this Layout object (DXF 12).
 
    \param insBase [in]  Insertion base.
  */
  void setINSBASE(
    const OdGePoint3d& insBase);
 
  /** \details
    Returns the LIMCHECK variable for this Layout object (DXF 70, bit 0x02).
  */
  bool getLIMCHECK() const;
 
  /** \details
    Sets the LIMCHECK variable for this Layout object (DXF 70, bit 0x02).
    
    \param limCheck [in]  LIMCHECK variable.  
  */
  void setLIMCHECK(
    bool limCheck);
 
  /** \details
    Returns the PSLTSCALE variable for this Layout object (DXF 70, bit 0x01).
  */
  bool getPSLTSCALE() const;
 
  /** \details
    Sets the PSLTSCALE variable for this Layout object (DXF 70, bit 0x01).
      
    \param psLtScale [in]  PSLTSCALE variable.
  */
  void setPSLTSCALE(
    bool psLtScale);
 
  ///////// END ODA SPECIFIC /////////////
 
  
  /** \details
    Returns the Object ID of the PaperSpace OdDbBlockTableRecord associated with this Layout object (DXF 330).
  */
  OdDbObjectId getBlockTableRecordId() const;
 
  /** \details
    Associates this Layout object with the specified PaperSpace OdDbBlockTableRecord (DXF 330).
    
    \param blockTableRecordId [in]  Block table record Object Id.
  */
  virtual void setBlockTableRecordId(
    const OdDbObjectId& blockTableRecordId);
 
  /** \details
    Adds this Layout object to the layout dictionary in the specified database, and associates 
    this Layout object with the specified PaperSpace OdDbBlockTableRecord. 
 
    \param pDb [in]  Pointer to the database
    \param blockTableRecordId [in]  Block table record Object Id.
  */
  virtual void addToLayoutDict(
    OdDbDatabase* pDb, 
    OdDbObjectId blockTableRecordId);
  
  /** \details
    Returns the name of this Layout object (DXF 1).
  */
  OdString getLayoutName() const;
 
  /** \details
    Sets the name of this Layout object (DXF 1).
      
    \param layoutName [in]  Layout name.  
  */
  virtual void setLayoutName(const OdString& layoutName);
  
  /** \details
    Returns the tab order for this Layout object (DXF 71).
    
    \remarks
    The tab order determines the order in which layout tabs are to be displayed.
  */
  int getTabOrder() const;
 
  /** \details
    Sets the tab order for this Layout Ooject (DXF 71).
    
    \param tabOrder [in]  Tab order.
 
    \remarks
    The tab order determines the order in which layout tabs are to be displayed.
    
    Tab order should be sequential for all Layout objects in the database.
  */
  virtual void setTabOrder(
    int tabOrder);
  
  /** \details
    Returns true if and only if this layout tab is selected.
  */
  bool getTabSelected() const;
 
  /** \details
    Controls the selected status for this Layout object.
    
    \param tabSelected [in]  Controls selected status. 
    
    \remarks
    Selected Layout objects are included in selection sets for operations effecting multiple layouts.
  */
  virtual void setTabSelected(
    bool tabSelected);
 
  
  /** \details
    Returns an array of OdDbObjectIds of all the OdDbViewports that exist in the Paper Space layout.
    The first ID in the list will be the overall Paper Space viewport.
    If the list returned is empty, then this layout is Model Space or has never been switched to (activated).
  */
  OdDbObjectIdArray getViewportArray() const;
 
  /** \details
    Returns the thumbnail bitmap associated with this layout object.
 
    \remarks
    The thumbnail is in Windows BITMAPINFO* format.
 
    \param dataLength [out]  Receives the data length of the thumbnail.
  */
  const void* thumbnailBitmap(
    OdUInt32& dataLength) const;
 
  /** \details
    Sets the thumbnail bitmap associated with this layout object.
 
    \remarks
    The thumbnail is in Windows BITMAPINFO* format.
 
    \param dataLength [in]  Data length of the thumbnail.
    \param pBMPData [in]  Pointer to the bitmap data.
  */
  void setThumbnailBitmap(
    const void* pBMPData,
    OdUInt32 dataLength);
 
  /** \details
    Returns the preview image associated with the layout object.
 
    \remarks
    Layout previews are stored as .png images. To create layout preview Teigha requires Raster Services module supporting .png format.
  */
   OdGiRasterImagePtr getPreviewImage () const;
 
  /** \details
    Sets a new preview image for the layout object.
 
    \param image [in]  A pointer to an OdGiRasterImage object to be set as a new preivew thumbnail.
 
    \remarks
    Layout previews are stored as .png images. To create layout preview Teigha requires Raster Services module supporting .png format.
  */
   void setPreviewImage (
      const OdGiRasterImage* image);
 
  virtual OdResult subGetClassID(
    void* pClsid) const;
 
  virtual OdResult dwgInFields(
    OdDbDwgFiler* pFiler);
 
  virtual void dwgOutFields(
    OdDbDwgFiler* pFiler) const;
 
  virtual void appendToOwner (
    OdDbIdPair& idPair, 
    OdDbObject* pOwnerObject, 
    OdDbIdMapping& ownerIdMap);
 
  virtual OdResult dxfInFields(
    OdDbDxfFiler* pFiler);
 
  virtual void dxfOutFields(
    OdDbDxfFiler* pFiler) const;
 
  /** \details
    Returns the Object ID of the viewport that was last active
    in this Layout object (DXF 331).
  */
  OdDbObjectId activeViewportId() const;
 
  /** \details
    Makes the specified viewport the active viewport of this Layout object (DXF 331).
 
    \param viewportId [in]  Object ID of the active viewport.      
  */
  void setActiveViewportId(
    OdDbObjectId viewportId);
 
  /** \details
      Returns the Object ID of the overall viewport of this Layout object.
  */
  OdDbObjectId overallVportId() const;
 
  OdUInt32 subSetAttributes(
    OdGiDrawableTraits* pTraits) const;
 
  bool subWorldDraw(
    OdGiWorldDraw* pWd) const;
 
  void subViewportDraw(
    OdGiViewportDraw* vPd) const;
 
  OdResult getGeomExtents(OdGeExtents3d& extents) const;
 
  void subClose();
 
  bool annoAllVisible() const;
 
  void setAnnoAllVisible(bool newVal);
};
 
// !!! SYMBOL RENAMED !!! USE activeViewportId()
 
#define lastActiveVportId() activeViewportId()
 
/** \details
  This template class is a specialization of the OdSmartPtr class for OdDbLayout object pointers.
*/
typedef OdSmartPtr<OdDbLayout> OdDbLayoutPtr;
 
#include "TD_PackPop.h"
 
#endif