CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
DbUnderlayItem.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2022 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23
24#ifndef __OD_DB_UNDERLAY_ITEM__
25#define __OD_DB_UNDERLAY_ITEM__
26
27#include "TD_PackPush.h"
28
29#include "OdPlatformSettings.h"
30#include "DbRootExport.h"
31#include "Gi/GiRasterImage.h"
32#include "Ge/GePoint3dArray.h"
33#include "IntArray.h"
34#include "OdaDefs.h"
35
36#include <vector>
37
38class OdGePoint2d;
39class OdGeMatrix3d;
40class OdGePlane;
41class OdGiWorldDraw;
43//const int kItemVersionNumber = 1;
44
48{
49public:
52
53 enum State
54 {
55 kOff = 0,
56 kOn = 1
57 };
58
59 OdString name() const;
60 State state() const;
61 void setName(const OdString& name);
62 void setState(State state);
63
66
67private:
68 class OdUnderlayLayerImpl* m_pImpl;
69};
70
72{
78};
79
85{
86public:
88
89 virtual OdString getName() const = 0;
90
91 virtual OdGiRasterImagePtr getThumbnail() const = 0;
93
94 virtual void getExtents(OdGePoint2d& min, OdGePoint2d& max) const = 0;
95
96 virtual OdDb::UnitsValue getUnits() const = 0;
97
98 virtual bool usingPartialContent() const;
99
100 virtual bool worldDraw(OdGiWorldDraw* pWd, const OdDbUnderlayDrawContext& context) const = 0;
101
102 virtual void viewportDraw(OdGiViewportDraw* pVd, const OdDbUnderlayDrawContext& context) const = 0;
103
105
106 virtual OdResult getMediaBox(OdGePoint2d &min, OdGePoint2d &max) const; //to use with PdfUnderlays because getExtents can return extents in mm or in inches randomly, this method always return media box in 1/72 inch
107
108 virtual OdResult getOsnapPoints(const OdGeMatrix3d& modelToWorld,
109 OdDb::OsnapMode osnapMode,
110 OdGsMarker gsSelectionMark,
111 const OdGePoint3d& pickPoint,
112 const OdGePoint3d& lastPoint,
113 const OdGeMatrix3d& viewXform,
114 const OdGeMatrix3d& ucs,
115 OdGePoint3dArray& snapPoints,
116 OdIntArray& geomIds) const;
117
118 virtual OdRxObjectPtr getSubEntityAtGsMarker(const OdGeMatrix3d& modelToWorld, OdGsMarker gsSelectionMark) const;
119
120 virtual OdResult intersectWith(const OdGeMatrix3d& modelToWorld,
121 const OdRxObject* pEnt,
122 OdDb::Intersect intType,
123 const OdGePlane* projPlane,
124 OdGePoint3dArray& points,
125 OdGsMarker thisGsMarker,
126 OdGsMarker otherGsMarker) const;
127
129 virtual OdResult getUnderlayLayer(int idx, OdUnderlayLayer& layer) const;
130
131 int version() const;
132};
133
135
136//FELIX_CHANGE_BEGIN
137#if !defined( SWIG ) //TODO: add managed support
138class OdGeVector3d;
141{
142public:
144 virtual OdGiRasterImagePtr getThumbnail( OdDbUnderlayItem* pItem, int width, int height ) const = 0;
146 {
147 void* _pData;
148 typedef void( *FnImageReady )( OnImageReady* pThis, OdGePoint3d& origin, OdGeVector3d& u, OdGeVector3d& v, OdGiRasterImagePtr& image );
149 FnImageReady _pFn;
150 };
151 virtual void getImage( OdDbUnderlayItemPtr item, bool isPreview, const OdGePoint2d& pixelDensity, double ds, const OdGeMatrix3d& x, const OdGePoint2d vps[], ODCOLORREF backgroundColor,
152 const OdDbUnderlayDrawContext& context, OdUInt32 viewportId, OdDbUnderlayReference* obj, bool isPlotGeneration,
153 OnImageReady* pCallback ) const = 0;
154 virtual bool viewportDraw( OdDbUnderlayItemPtr item, OdGiViewportDraw* pVd, const OdDbUnderlayDrawContext& context, const OdDbUnderlayReference* obj ) const = 0;
155};
157
158#include "Ge/GeExtents2d.h"
159#include "Ge/GeMatrix3d.h"
160#include "Ge/GePoint2d.h"
162{
163public:
165 virtual void getPageSize( OdDbUnderlayItemPtr item, OdGePoint2d& pageSize ) const = 0;
166 virtual void getMeasureDictInfo( OdDbUnderlayItemPtr item, double& measure ) const = 0;
168 {
170 double _ds;
172 OdGePoint2d _vps[2];
173 };
175 {
179 PdfParams( const OdGeExtents2d& clipRect, double measureScale, double dpi_ratio );
180 static void GetUV( const OdGeExtents2d& clipRect, double measureScale, double dpi_ratio,
181 /*out*/ OdGePoint3d& origin, /*out*/ OdGeVector3d& u, /*out*/ OdGeVector3d& v );
182 };
183 virtual void getParameters( OdDbUnderlayItemPtr item, const DwgParams& dwgParams, std::vector<PdfParams>& pdfParams ) const = 0;
184 struct Abort
185 {
186 void* _pData;
187 typedef bool( *FnAbort )( void* pData );
188 FnAbort _pFn;
189 };
190 virtual void getImage( OdDbUnderlayItemPtr item, const PdfParams& pdfParams, Abort abort, ODCOLORREF backgroundColor,
191 const OdDbUnderlayDrawContext& context, OdGiRasterImagePtr& pImage ) const = 0;
192};
194#endif
195//FELIX_CHANGE_END
196
197#include "TD_PackPop.h"
198
199#endif // __OD_DB_UNDERLAY_ITEM__
#define DBROOT_EXPORT
Definition: DbRootExport.h:39
OdSmartPtr< OdDbUnderlayItem > OdDbUnderlayItemPtr
OdSmartPtr< OdDbUnderlayItemPE2 > OdDbUnderlayItemPE2Ptr
OdSmartPtr< OdDbUnderlayItemPE > OdDbUnderlayItemPEPtr
#define ODCOLORREF
Definition: OdPlatform.h:933
ptrdiff_t OdGsMarker
unsigned int OdUInt32
unsigned char OdUInt8
OdResult
Definition: OdResult.h:29
virtual OdString getName() const =0
int version() const
virtual OdGiRasterImagePtr getThumbnail(int width, int height) const
ODRX_DECLARE_MEMBERS(OdDbUnderlayItem)
virtual OdResult getMediaBox(OdGePoint2d &min, OdGePoint2d &max) const
virtual void viewportDraw(OdGiViewportDraw *pVd, const OdDbUnderlayDrawContext &context) const =0
virtual OdDb::UnitsValue getUnits() const =0
virtual OdGiRasterImagePtr getThumbnail() const =0
virtual OdRxObjectPtr getSubEntityAtGsMarker(const OdGeMatrix3d &modelToWorld, OdGsMarker gsSelectionMark) const
virtual OdResult intersectWith(const OdGeMatrix3d &modelToWorld, const OdRxObject *pEnt, OdDb::Intersect intType, const OdGePlane *projPlane, OdGePoint3dArray &points, OdGsMarker thisGsMarker, OdGsMarker otherGsMarker) const
virtual OdUInt32 underlayLayerCount() const
virtual bool worldDraw(OdGiWorldDraw *pWd, const OdDbUnderlayDrawContext &context) const =0
virtual bool usingPartialContent() const
virtual OdResult getUnderlayLayer(int idx, OdUnderlayLayer &layer) const
virtual OdResult getOsnapPoints(const OdGeMatrix3d &modelToWorld, OdDb::OsnapMode osnapMode, OdGsMarker gsSelectionMark, const OdGePoint3d &pickPoint, const OdGePoint3d &lastPoint, const OdGeMatrix3d &viewXform, const OdGeMatrix3d &ucs, OdGePoint3dArray &snapPoints, OdIntArray &geomIds) const
virtual void getExtents(OdGePoint2d &min, OdGePoint2d &max) const =0
virtual OdGeMatrix3d modelTransform() const
virtual void getParameters(OdDbUnderlayItemPtr item, const DwgParams &dwgParams, std::vector< PdfParams > &pdfParams) const =0
virtual void getPageSize(OdDbUnderlayItemPtr item, OdGePoint2d &pageSize) const =0
virtual void getMeasureDictInfo(OdDbUnderlayItemPtr item, double &measure) const =0
ODRX_DECLARE_MEMBERS(OdDbUnderlayItemPE2)
virtual void getImage(OdDbUnderlayItemPtr item, const PdfParams &pdfParams, Abort abort, ODCOLORREF backgroundColor, const OdDbUnderlayDrawContext &context, OdGiRasterImagePtr &pImage) const =0
virtual void getImage(OdDbUnderlayItemPtr item, bool isPreview, const OdGePoint2d &pixelDensity, double ds, const OdGeMatrix3d &x, const OdGePoint2d vps[], ODCOLORREF backgroundColor, const OdDbUnderlayDrawContext &context, OdUInt32 viewportId, OdDbUnderlayReference *obj, bool isPlotGeneration, OnImageReady *pCallback) const =0
ODRX_DECLARE_MEMBERS(OdDbUnderlayItemPE)
virtual bool viewportDraw(OdDbUnderlayItemPtr item, OdGiViewportDraw *pVd, const OdDbUnderlayDrawContext &context, const OdDbUnderlayReference *obj) const =0
virtual OdGiRasterImagePtr getThumbnail(OdDbUnderlayItem *pItem, int width, int height) const =0
OdString name() const
State state() const
OdUnderlayLayer(const OdUnderlayLayer &source)
void setName(const OdString &name)
void setState(State state)
GLint GLenum GLsizei width
Definition: gles2_ext.h:110
typedef void(APIENTRYP PFNGLACTIVETEXTUREPROC)(GLenum texture)
GLuint const GLchar * name
Definition: gles2_ext.h:265
const GLfloat * v
Definition: gles2_ext.h:315
GLsizei GLsizei GLchar * source
Definition: gles2_ext.h:282
GLfloat x
Definition: gles2_ext.h:314
GLint GLenum GLsizei GLsizei height
Definition: gles2_ext.h:110
Intersect
Definition: OdaDefs.h:481
OsnapMode
Definition: OdaDefs.h:489
UnitsValue
Definition: OdaDefs.h:451
OdArray< OdUnderlayLayer > layers
PdfParams(const OdGeExtents2d &clipRect, double measureScale, double dpi_ratio)
static void GetUV(const OdGeExtents2d &clipRect, double measureScale, double dpi_ratio, OdGePoint3d &origin, OdGeVector3d &u, OdGeVector3d &v)