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
/////////////////////////////////////////////////////////////////////////////// 
// 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_DB_UNDERLAY_REFERENCE__
#define __OD_DB_UNDERLAY_REFERENCE__
 
#include "TD_PackPush.h"
#include "DbEntity.h"
#include "Ge/GePoint2dArray.h"
 
/** \details
    This class represents underlays, where OdDbUnderlayReference controls the placement of the
    underlay in the drawing and OdDbUnderlayDefinition links to the underlay content.
    
    <group Other_Classes>
*/
class OdUnderlayLayer;
 
/** \details
 
    <group OdDb_Classes>
*/
class TOOLKIT_EXPORT OdDbUnderlayReference : public OdDbEntity
{
public:
  ODDB_DECLARE_MEMBERS(OdDbUnderlayReference);
 
  virtual OdResult dwgInFields(
    OdDbDwgFiler* pFiler);
 
  virtual void dwgOutFields(
    OdDbDwgFiler* pFiler) const;
 
  virtual OdResult dxfInFields(
    OdDbDxfFiler* pFiler);
 
  virtual void dxfOutFields(
    OdDbDxfFiler* pFiler) const;
 
  virtual OdUInt32 subSetAttributes(
    OdGiDrawableTraits* traits) const;
 
  virtual bool subWorldDraw(
    OdGiWorldDraw* pWd) const;
 
  virtual void subViewportDraw(
    OdGiViewportDraw* pVd) const;
 
  // method with wrong input parameters - must be removed in next release
  virtual OdResult subGetOsnapPoints(
    OdDb::OsnapMode osnapMode, 
    OdGsMarker        gsSelectionMark, 
    const OdGePoint3d& pickPoint,
    const OdGePoint3d& lastPoint, 
    const OdGeMatrix3d& viewXform, 
    const OdGeMatrix3d& ucs, 
    OdGePoint3dArray& snapPoints ) const { return eNotApplicable; }
 
  virtual OdResult subGetOsnapPoints(
    OdDb::OsnapMode osnapMode,
    OdGsMarker gsSelectionMark,
    const OdGePoint3d& pickPoint,
    const OdGePoint3d& lastPoint,
    const OdGeMatrix3d& xWorldToEye,
    OdGePoint3dArray& snapPoints ) const;
 
  virtual OdResult subTransformBy(
    const OdGeMatrix3d& xfm);
 
  OdGePoint3d position() const;
  void setPosition(const OdGePoint3d& position);
 
  OdGeScale3d scaleFactors() const;
  void setScaleFactors(const OdGeScale3d& scale);
 
  double rotation() const;
  void setRotation(double rotation);
 
  OdGeVector3d normal() const;
  void setNormal(const OdGeVector3d& normal);
 
  OdGeMatrix3d transform() const;
  OdResult setTransform(const OdGeMatrix3d& transform);
 
  OdDbObjectId definitionId() const;
  void setDefinitionId(OdDbObjectId id);
 
  const OdGePoint2dArray& clipBoundary() const;
  void setClipBoundary(const OdGePoint2d* clipBoundary, OdUInt32 nbPts);
 
  bool isClipped() const;
  void setIsClipped(bool value);
 
  OdUInt8 contrast() const;
  void setContrast(OdUInt8 value);
 
  OdUInt8 fade() const;
  void setFade(OdUInt8 value);
 
  bool isOn() const;
  void setIsOn(bool value);
 
  bool isMonochrome() const;
  void setIsMonochrome(bool value);
 
  bool isAdjustedForBackground() const;
  void setIsAdjustedForBackground(bool value);
 
  // must be overriden
 
  virtual bool isFrameVisible() const = 0;
  virtual bool isFramePlottable() const = 0;
 
  OdUInt32 underlayLayerCount() const;
  OdResult getUnderlayLayer(int index, OdUnderlayLayer& layer) const;
  OdResult setUnderlayLayer(int index, const OdUnderlayLayer& layer);
 
  static OdUInt8 contrastLowerLimit();
  static OdUInt8 contrastUpperLimit();
  static OdUInt8 contrastDefault();
  static OdUInt8 fadeLowerLimit();
  static OdUInt8 fadeUpperLimit();
  static OdUInt8 fadeDefault();
 
  bool isClipInverted() const;
  void setClipInverted(bool value);
  OdResult generateClipBoundaryFromPline(OdDbObjectId plId);
 
  OdGeMatrix3d getEcs( ) const;
};
 
typedef OdSmartPtr<OdDbUnderlayReference> OdDbUnderlayReferencePtr;
 
 
/** \details
 
    <group OdDb_Classes>
*/
class TOOLKIT_EXPORT OdDbDwfReference : public OdDbUnderlayReference
{
public:
  ODDB_DECLARE_MEMBERS(OdDbDwfReference);
 
  OdDbDwfReference();
 
  virtual bool isFrameVisible() const;
  virtual bool isFramePlottable() const;
 
  virtual bool subIsContentSnappable() const;
  virtual OdResult subGetClassID(void* pClsid) const;
};
 
typedef OdSmartPtr<OdDbDwfReference> OdDbDwfReferencePtr;
 
 
/** \details
 
    <group OdDb_Classes>
*/
class TOOLKIT_EXPORT OdDbDgnReference : public OdDbUnderlayReference
{
public:
  ODDB_DECLARE_MEMBERS(OdDbDgnReference);
 
  OdDbDgnReference();
 
  virtual bool isFrameVisible() const;
  virtual bool isFramePlottable() const;
 
  virtual bool subIsContentSnappable() const;
  virtual OdResult subGetClassID(void* pClsid) const;
 
  void setXrefDepth(OdInt32 depth);
};
 
typedef OdSmartPtr<OdDbDgnReference> OdDbDgnReferencePtr;
 
/** \details
 
<group OdDb_Classes>
*/
class TOOLKIT_EXPORT OdDbPdfReference : public OdDbUnderlayReference
{
public:
  ODDB_DECLARE_MEMBERS(OdDbPdfReference);
 
  OdDbPdfReference();
 
  virtual bool isFrameVisible() const;
  virtual bool isFramePlottable() const;
 
  virtual bool subIsContentSnappable() const;
  virtual OdResult subGetClassID(void* pClsid) const;
 
  virtual OdUInt32 subSetAttributes(OdGiDrawableTraits *traits) const;
 
  static OdUInt8 contrastDefault();
  static OdUInt8 fadeDefault();
};
 
typedef OdSmartPtr<OdDbPdfReference> OdDbPdfReferencePtr;
 
/** \details
 
    <group OdDb_Classes>
*/
class TOOLKIT_EXPORT OdDbNavisworksReference : public OdDbEntity
{
public:
  ODDB_DECLARE_MEMBERS( OdDbNavisworksReference );
 
  OdDbNavisworksReference();
  
  OdGePoint3d getInsertionPoint() const;
  void setInsertionPoint( const OdGePoint3d& position );
 
  double getScale() const;
  void setScale( double scale );
 
  double getRotation() const;
  void setRotation( double rotation );
 
  OdGeMatrix3d getTransformation() const;
  OdResult setTransformation( const OdGeMatrix3d& transform );
 
  OdDbObjectId getDefinitionId() const;
  void setDefinitionId( OdDbObjectId id );
 
  OdResult getHostDwgVisibility( bool &bVisibility )const;
  OdResult setHostDwgVisibility( bool bVisibility );
 
  OdResult getName( OdString &name )const;
  OdResult getSavedPath( OdString &path )const;
 
  double getInsertionUnitScaleFactor()const;
  void setInsertionUnit( OdDb::UnitsValue unitsVal );
 
  virtual OdResult subTransformBy(
    const OdGeMatrix3d& xfm );
 
  virtual OdUInt32 subSetAttributes(
    OdGiDrawableTraits* traits ) const;
 
  virtual bool subWorldDraw(
    OdGiWorldDraw* pWd ) const;
 
  virtual OdResult dwgInFields(
    OdDbDwgFiler* pFiler );
 
  virtual void dwgOutFields(
    OdDbDwgFiler* pFiler ) const;
 
  virtual OdResult dxfInFields(
    OdDbDxfFiler* pFiler );
 
  virtual void dxfOutFields(
    OdDbDxfFiler* pFiler ) const;
};
 
typedef OdSmartPtr<OdDbNavisworksReference> OdDbNavisworksReferencePtr;
 
#include "TD_PackPop.h"
 
#endif // __OD_DB_UNDERLAY_REFERENCE__