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
/////////////////////////////////////////////////////////////////////////////// 
// 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 __DBGSMANAGER_H_INCLUDED_
#define __DBGSMANAGER_H_INCLUDED_
 
class OdDbObjectId;
class OdDbViewport;
class OdDbDatabase;
class OdGiContextForDbDatabase;
 
#include "Gs/Gs.h"
 
#include "TD_PackPush.h"
 
/** \details
    Library: TD_Db
    <group OdGs_Classes> 
*/
class TOOLKIT_EXPORT OdGsLayoutHelper : public OdGsDevice
{
public:
  ODRX_DECLARE_MEMBERS(OdGsLayoutHelper);
  /** \details
    Returns the Layout object associated with this LayoutHelper object.
  */
  virtual OdDbObjectId layoutId() const = 0;
  /** \details
    Returns the active GsView object of the Layout object associated with this LayoutHelper object.
  */
  virtual OdGsViewPtr activeView() const = 0;
  /** \details
    Sets the active GsView object of the Layout object associated with this LayoutHelper object.
    \param pView [in]  Pointer to the GsView.
  */
  virtual void makeViewActive(OdGsView* pView) = 0;
  /** \details
    Return the OdGsModel object associated with this layout helper.
  */
  virtual OdGsModel* gsModel() = 0;
 
  /** \details
    Returns the underlying OdGsDevice object associated with this LayoutHelper object.
  */
  virtual OdGsDevicePtr underlyingDevice() const = 0;
 
  /** \details
    Sets the active viewport
    \param at [in]  Pick point in device coordinates.
  */
  virtual bool setActiveViewport(const OdGePoint2d& screenPt) = 0;
 
  /** \details
    \param id [in]  ObjectId of viewport which will be made active.
  */
  virtual bool setActiveViewport(const OdDbObjectId& id) = 0;
 
  /** \details
    Restores layout GsView database linkages state.
  */
  virtual void restoreGsViewDbLinkState() = 0;
 
  /** \details
    Checks does underlying device supports Gs state saving/loading.
  */
  virtual bool supportLayoutGsStateSaving() const = 0;
  /** \details
    Stores Gs state compatible with this LayoutHelper object.
    \param pStream [in]  Pointer onto OdStreamBuf object into which Gs state will be stored.
    \param nFlags [in]  Optional flags.
  */
  virtual bool storeLayoutGsState(OdStreamBuf* pStream, OdUInt32 nFlags = 0) const = 0;
  /** \details
    Extracts Layout object Id from Gs state stream.
    \param pStream [in]  Pointer onto OdStreamBuf object into which Gs state will be stored.
    \param pDb [in]  Opened database pointer.
    \param layoutObjId [out]  Layout object Id will be returned through this argument.
    \param nFlags [in]  Optional flags.
  */
  static bool extractLayoutIdForGsState(OdStreamBuf* pStream, OdDbDatabase *pDb, OdDbObjectId &layoutObjId, OdUInt32 nFlags = 0);
  /** \details
    Restores Gs state compatible with this LayoutHelper object.
    \param pStream [in]  Pointer onto OdStreamBuf object from which Gs state will be restored.
    \param nFlags [in]  Optional flags.
    \param pRetFiler [out]  Returns filer object invoked for state loading.
  */
  virtual bool restoreLayoutGsState(OdStreamBuf* pStream, OdUInt32 nFlags = 0) = 0;
};
 
typedef OdSmartPtr<OdGsLayoutHelper> OdGsLayoutHelperPtr;
 
 
/** \details
    Library: TD_Db
    <group OdGs_Classes> 
*/
class TOOLKIT_EXPORT OdGsPaperLayoutHelper : public OdGsLayoutHelper
{
public:
  ODRX_DECLARE_MEMBERS(OdGsPaperLayoutHelper);
 
  virtual OdGsViewPtr overallView() const = 0;
  virtual void makeViewOverall(OdGsView* pView) = 0;
  virtual void initGsView(OdGsView* pView, const OdDbViewport* pVp) = 0;
 
  virtual OdGsViewPtr addViewport(const OdDbViewport* pVp);
  virtual OdGsViewPtr insertViewport(int viewIndex, const OdDbViewport* pVp);
};
 
typedef OdSmartPtr<OdGsPaperLayoutHelper> OdGsPaperLayoutHelperPtr;
 
 
/** \details
 
    Library: TD_Db
    <group OdGs_Classes> 
*/
class TOOLKIT_EXPORT OdGsModelLayoutHelper : public OdGsLayoutHelper
{
public:
  ODRX_DECLARE_MEMBERS(OdGsModelLayoutHelper);
};
 
typedef OdSmartPtr<OdGsModelLayoutHelper> OdGsModelLayoutHelperPtr;
 
 
/** \details
 
    <group TD_Namespaces>
*/
namespace OdDbGsManager
{
  /** \details
      Populates OdGsDevice-derived object with OdGsViews-derived objects.
      Returns OdGsDevice-derived wrapper that handles some OdGsDevice's calls.
  */
  TOOLKIT_EXPORT OdGsLayoutHelperPtr setupActiveLayoutViews(OdGsDevice* pDevice,
    OdGiContextForDbDatabase* pGiCtx);
 
  /** \details
      Populates OdGsDevice-derived object with OdGsViews-derived objects.
      Returns OdGsDevice-derived wrapper that handles some OdGsDevice's calls.
  */
  TOOLKIT_EXPORT OdGsLayoutHelperPtr setupLayoutViews(OdDbObjectId layoutId, OdGsDevice* pDevice, 
    OdGiContextForDbDatabase* pGiCtx);
 
  /** \details
      Setups OdGsDevice-derived object with the palette associated with specified layout.
  */
  TOOLKIT_EXPORT void setupPalette(OdGsDevice* device, OdGiContextForDbDatabase* giContext,
    OdDbStub* layoutId = 0, ODCOLORREF palBackground = ODRGBA(0,0,0,0));
}
 
#include "TD_PackPop.h"
 
#endif // __DBGSMANAGER_H_INCLUDED_