/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, 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 Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 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 _PDF_2D_EXPORT_VIEW_INCLUDED_ #define _PDF_2D_EXPORT_VIEW_INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "2dExportDeviceForPdfExport.h" #include "RxObjectImpl.h" #include "OdPlatform.h" #include "Gi/GiPlotGenerator.h" #include "PdfExportClipper.h" #include "Pdf2dExportDevice.h" using namespace TD_PDF; ////////////////////////////////////////////////////////////////////// /** \details Contains declarations for 2D PDF Export. */ namespace TD_PDF_2D_EXPORT { struct ImageData; struct HyperlinkData; class PDF2dExportHLRContext; /** \details This class implements the two-dimensional export view. */ class PDF2dExportView : public Od2dExportView { /** \details A data type that represents the base class for the PDF2dExportView class. */ typedef Od2dExportView super; protected: void exportTraits(); void endMetafileRecording() ODRX_OVERRIDE; void beginMetafile(OdRxObject* pMetafile) ODRX_OVERRIDE; /** \details Retrieves a hyperlink data if it exists. \param pDrawable [in] A raw pointer to the Gi drawable object. \param dataToFill [out] A placeholder for hyperlink data. \returns A Boolean value that is equal to true if the method successfully returns hyperlink data; otherwise, the method returns false (for example, if no hyperlink data exists). */ bool getHyperlink(const OdGiDrawable* pDrawable, HyperlinkData& dataToFill) const; /** \details Plays (draws) the specified meta file (cache) object. \param pMetafile [in] A pointer to the meta file. */ void playMetafile(const OdRxObject* pMetafile) ODRX_OVERRIDE; /** \details A service method to process layers for inserts. \param pLayer [in] A pointer to a layer. \param bOpen [in] A flag value that is equal to true if the layer is open or is equal to false if the layer is closed. */ bool processLayerFromMf(OdDbStub* layer, bool bOpen); /** \details Passes a hyperlink to the meta filer object. */ void passHyperlinkToMetafiler(); /** \details Adds a text annotation if it is necessary. \param pDrawable [in] A raw pointer to the Gi drawable entity. \param layerName [in] A string that contains the layer name where the annotation should be located. */ void processSearchableText(const OdGiDrawable* pDrawable, const OdString &layerName = OdString()); /** \details Passes a text annotation to the meta filer. \param layerName [in] A string that contains the layer name where the annotation is located. */ void passTextAnnotationToMetafiler(const OdString &layerName); /** \details Processes the PRC content from a specified Gi drawing entity. \param pDrawable [in] A raw pointer to the Gi drawable entity. \returns A Boolean value that is equal to true if the PRC content is successfully processed; otherwise, the method returns false. */ bool processPRC(const OdGiDrawable* pDrawable); /** \details Pushes a clip to the viewport. */ void pushViewportClip(); /** \details Pops a clip from the viewport. */ void popViewportClip(); /** \details Retrieves the layer name from an identifier. \param layerName [out] a reference to the OdString with layer name \param layer [in] A raw pointer to a stub object that represents the identifier. \param pAuxData [in] an Auxiliary Gi data \returns A string that contains the layer name. */ void layerName(OdString& layerName, OdDbStub* layer, OdGiAuxiliaryData* pAuxData = 0); /** \details Views the specified extended block. \param extents [out] A reference to the OdGeBoundBlock3d class instance to be viewed. \returns A Boolean value that is equal to true if the extended block is viewed successfully or false otherwise. */ bool viewExtents(OdGeBoundBlock3d& extents) const override; /** \details Sets the annotation text for the view. \param msg [in] The annotation text. \param length [in] The length of the annotation text. \param pStyle [in] A raw pointer to the OdGiTextStyle object that represents text style parameters. */ void setAnnotationText(const OdChar* msg, OdInt32 length, const OdGiTextStyle* pStyle); /** \details Draws a specified hatch as a bitmap. \param extents [in] An OdGeExtents3d object that represents the extents. \param clipStat [in] The clip status value. \param numVertices [in] The number of vertices. \param vertexList [in] A raw pointer to the array of vertices. \param faceListSize [in] The number of faces. \param faceList [in] A pointer to the index list of vertices that form the face. \param pEdgeData [in] A raw pointer to an array of OdGiEdgeData objects that contain the edge data. \param pFaceData [in] A raw pointer to an array of OdGiFaceData objects that contain the face data. \param pVertexData [in] A raw pointer to an array of OdGiVertexData objects that contain the face data. \returns A Boolean value that is equal to true if the hatch is successfully drawn; otherwise, the method returns false. */ bool drawHatchAsBitmap(const OdGeExtents3d& extents, OdUInt32 clipStat, OdInt32 numVertices, const OdGePoint3d* vertexList, OdInt32 faceListSize, const OdInt32* faceList, const OdGiEdgeData* pEdgeData, const OdGiFaceData* pFaceData, const OdGiVertexData* pVertexData); /** \details Draws a specified hatch as paths. hatchPE [out] A placeholder for an OdDbBaseHatchPE object that represents the hatch to be drawn. \param bClip [in] A flag, indicates if the hatch is clipped with viewport \param numVertices [in] The number of vertices. \param vertexList [in] A raw pointer to the array of vertices. \param faceListSize [in] The number of faces. \param faceList [in] A pointer to the index list of of vertices that form the face. \param pEdgeData [in] A raw pointer to an array of OdGiEdgeData objects that contain the edge data. \param pFaceData [in] A raw pointer to an array of OdGiFaceData objects that contain the face data. \param pVertexData [in] A raw pointer to an array of OdGiVertexData objects that contain the face data. \returns A Voolean value that is equal to true if the hatch is successfully drawn; otherwise, the method returns false. */ void drawHatchAsPaths(OdDbBaseHatchPE& hatchPE, bool bClip, OdInt32 numVertices, const OdGePoint3d* vertexList, OdInt32 faceListSize, const OdInt32* faceList, const OdGiEdgeData* pEdgeData, const OdGiFaceData* pFaceData, const OdGiVertexData* pVertexData); /** \details Set fill rule for polygons. \param rule [in] A rule for polygons. */ void setFillRule(PDF2dExportGeometry::PolygonFillRules); /** \details Sets the drawing countour. \param bStart [in] A Boolean start flag value. */ void setDrawingContour(bool bStart); /** \details Fills the contour. */ void fillContour(); /** \details Enables or disables clipping within the viewport. \param bEnable [in] A Boolean value that defines whether clipping is enabled (true) or disabled (false). */ void enableViewportClip(bool bEnable); /** \details Processes a frozen layer with a specified name. \param name [in] A string that contains the name of the frozen layer. */ void processFrozenLayer(const OdString& name = L""); //if name == "", then close layer /** \details Calculates the text length in pixels. \param msg [in] The text represented with an array of characters. \param length [in] The length of the text in symbols. \param raw [in] A raw flag value. \param pStyle [in] A raw pointer to the OdGiTextStyle object that represents the text style parameters. \returns A signed 32-bit integer value that contains the text length. */ OdInt32 calculateTextLen(const OdChar* msg, OdInt32 length, bool raw, const OdGiTextStyle* pStyle); /** \details Defines whether the specified drawable entity is a block reference. \param drawableFlags [in] A set of drawing flags. \param pDrawable [in] A raw pointer to the drawable entity. \returns A Boolean value that is equal to true if the drawable entity is a block reference; otherwise, the method returns false. */ bool isBlockRef(OdUInt32 drawableFlags, const OdGiDrawable* pDrawable); /** \details Processes the specified PDF blocks. pPortion [in] An OdGsGeomPortion object that represents a portion of geometry data. pContext [in] A raw pointer to the context object. node [out] A placeholder for an OdGsEntityNode object that contains the result of block processing. blockName [in] A string object that contains the block name. pLayer [in] A raw pointer to the OdGsLayerNode object. \returns A Boolean value that is equal to true if the blocks are successfully processed; otherwise, the method returns false. */ bool processPdfBlocks(const OdGsGeomPortion* pPortion, OdGsBaseContext* pContext, OdGsEntityNode &node, const OdString& blockName, const OdGsLayerNode* pLayer); /** \details Processes the transformation of the full block. \returns An OdGeMatrix3d object that contains the transformation matrix. */ OdGeMatrix3d processFullBlockTransform(); public: /** \details Creates a new export view object with default parameters. */ PDF2dExportView() : m_curHl(nullptr) , m_annotationText("") , m_hlrCtx(nullptr) , m_bObscuredLinesOutput(false) , m_bHatchToBitmapMode(false) , m_bAdditionalClip(false) , m_bRestartClipper(false) , m_bDisableColorMerge(false) , m_bTextGeomConnected(false) , m_iExportToBlock(0) , m_iExportNonGrapchicalInfo(0) , m_iSkipXrefBlock(0) , m_bValidMfToDeviceMatrix(false) { setDrawContextFlags(OdGiConveyorContext::kPlineAllowArcProc, true); } /** \details Destroys the PDF2dExportView object. */ ~PDF2dExportView() override; /** \details Retrieves the geometry for the current view. \returns A raw pointer to the PDF2dExportGeometry object for the current view. */ PDF2dExportGeometry* deviceGeom() { return (PDF2dExportGeometry*)m_deviceGeom; } /** \details Retrieves the geometry for the current view. \returns A constant pointer to the PDF2dExportGeometry object for the current view, therefore it can't be modified. */ const PDF2dExportGeometry* deviceGeom() const { return (PDF2dExportGeometry*)m_deviceGeom; } /** \details Determines whether the meta-file is playing for the display. \returns true if the metafile is playing for the display; otherwise, the method returns false. */ bool isPlayingMfForDisplay() const { return metafilePlayMode() == kMfDisplay; } /** \details Retrieves the current Gs note entity for the view. \returns A raw pointer to the OdGsEntityNode object that represents the current node object for the view. */ const OdGsEntityNode* mfPlayNode() const { return m_MfPlayNode; } /** \details Retrieves a matrix for meta-file to display transformation. \returns An OdGeMatrix3d object that represents the meta-file to display transformation. */ OdGeMatrix3d metafileToDeviceMatrix() const; /** \details Sets a new value of the "off-layer" flag. If "off-layer" mode is on, entities from frozen and turned-off layers are exported. \param bSet [in] A new value of the flag to be set. */ void setOffLayersEnabled(bool bSet); /** \details Pushes a specified transformation matrix into a MetafileTransformStack object. \param mtx [in] A transformation matrix to be pushed. \param uFlags [in] A set of MetafileTransformFlags values. */ void pushMetafileTransform(const OdGeMatrix3d& mtx, OdUInt32 uFlags = 0) ODRX_OVERRIDE; /** \details Checks whether spatial indexes are disabled. \returns true if spatial indexes are disabled, false otherwise. */ bool isSpatialIndexDisabled() const ODRX_OVERRIDE { PDF2dExportGeometry* geom = (PDF2dExportGeometry*)m_deviceGeom; if(geom && geom->exportParams().isUsePdfBlocks() && m_iExportToBlock && !m_iExportNonGrapchicalInfo) return true; else return super::isSpatialIndexDisabled(); } /** \details Plays (redraws) the specified Nested metafile (cache) object. \param pPortion [in] Pointer to the geometry portion. \param pContext [in] Pointer to the Gs context. \param node [in] Reference to the Gs node. \returns true if the metafile was successfully redrawn. \remarks GsMetafiles are used to record vectorization, and rapidly "redraw" it to a display device. */ bool playNestedMetafile(const OdGsGeomPortion* pPortion, OdGsBaseContext* pContext, OdGsEntityNode& node) ODRX_OVERRIDE; /** \details Traits modifying handler for the export view. \remarks Process modified traits with specified data for the view. */ void onTraitsModified() override; /** \details Creates a new view object. \returns A smart pointer to the created view object. */ static OdGsViewPtr createObject() { return OdRxObjectImpl::createObject(); } /** \details Retrieves the export device associated with the export view. \returns A raw pointer to the PDF2dExportDevice object that represents the export device associated with the export view. */ PDF2dExportDevice* device() { return (PDF2dExportDevice*)Od2dExportView::device(); } /** \details Retrieves the export device associated with the export view. \returns A raw pointer to the PDF2dExportDevice object that represents the export device associated with the export view. */ PDF2dExportDevice* device() const override { return (PDF2dExportDevice*)Od2dExportView::device(); } /** \details Retrieves a plot generator for the export view. \returns a raw pointer to the OdGiPlotGenerator that represents the plot generator for the export view. */ OdGiPlotGenerator& plotGenerator(); // -------- Od2dExportView -------- /** \details Starts the vectorization of the export view. */ void beginViewVectorization() ODRX_OVERRIDE; /** \details Updates the vectorization of the export view. */ void update() ODRX_OVERRIDE; /** \details Draws the specified drawable entity with specified flags. \param drawableFlags [in] A value that contains drawable flags. \param pDrawable [in] A raw pointer to the drawable entity. \returns true if the drawing was successful; otherwise the method returns false. */ bool doDraw(OdUInt32 drawableFlags, const OdGiDrawable* pDrawable) ODRX_OVERRIDE; /** \details Loads the viewport. */ void loadViewport() ODRX_OVERRIDE; /** \details Ends the vectorization of the export view. */ void endViewVectorization() ODRX_OVERRIDE; /** \details Retrieves the transformation for the meta-file geometry. \returns An OdGeMatrix3d object that represents the transformation. */ OdGeMatrix3d getTransformForMetafileGeometry() const ODRX_OVERRIDE; /** \details Creates a shell object. \param numVertices [in] A number of the shell vertices. \param vertexList [in] A raw pointer to the vertices array. \param faceListSize [in] A number of the shell faces. \param faceList [in] A raw pointer to the face indexes. \param pEdgeData [in] A raw pointer to the edge data. \param pFaceData [in] A raw pointer to the face data. \param pVertexData [in] A raw pointer to the vertex data. */ void shell(OdInt32 numVertices, const OdGePoint3d* vertexList, OdInt32 faceListSize, const OdInt32* faceList, const OdGiEdgeData* pEdgeData, const OdGiFaceData* pFaceData, const OdGiVertexData* pVertexData) ODRX_OVERRIDE; /** \details Creates a text object. \param position [in] A point that defines the text position. \param normal [in] A vector that determines the text normal vector. \param direction [in] A vector that determines the text direction. \param msg [in] A raw pointer to the char array that contains the related message text. \param length [in] A length of the message text. \param raw [in] A raw flag value. \param pTextStyle [in] A raw pointer to the text style object. */ void text(const OdGePoint3d& position, const OdGeVector3d& normal, const OdGeVector3d& direction, const OdChar* msg, OdInt32 length, bool raw, const OdGiTextStyle* pTextStyle) ODRX_OVERRIDE; /** \details Passes the object to the visualization framework to render itself. \param origin [in] The object origin. \param u [in] The object width vector. \param v [in] The object length vector. \param pDrawable [in] A raw pointer the drawable entity. \param bDcAligned [in] A reserved. You can omit this parameter when calling the method. \param bAllowClipping [in] A reserved. You can omit this parameter when calling the method. */ void ownerDrawDc( const OdGePoint3d& origin, const OdGeVector3d& u, const OdGeVector3d& v, const OdGiSelfGdiDrawable* pDrawable, bool bDcAligned = true, bool bAllowClipping = false) ODRX_OVERRIDE; /** \details Retrieves the NURBS curve from the vectorization context. \param nurbs [out] A placeholder for an OdGeNurbCurve3d object that represents the NURBS curve. \remarks The method accepts an OdGeNurbCurve3d object fills it with data and returns it to a calling subroutine. */ void nurbs(const OdGeNurbCurve3d& nurbs) ODRX_OVERRIDE; /** \details Retrieves the current value of the linetype generation criteria. \returns A double value that contains the linetype generation criteria. */ double linetypeGenerationCriteria() const ODRX_OVERRIDE; /** \details Determines whether the geometry can be processed. \returns true if the geometry can be processed; otherwise, the method returns false. \remarks Call this method to request a preliminary loop for viewing and processing of current settings without geometry processing. */ bool isProcessGeom() { return true; } /** \details Calculate the deviation of the specified type for the specified point. \param type [in] A deviation type (an instance of the OdGiDeviationType class). \param pt [in] A point for which the deviation is needed to be calculated represented with an instance of the OdGePoint3d class. \returns true if the deviation was successfully calculated; otherwise, the method returns false. */ double calcScaledDeviation(const OdGiDeviationType type, const OdGePoint3d& pt) const; /** \details Retrieves the deviation of the specified type for the specified point. \param type [in] A deviation type (an instance of the OdGiDeviationType class). \param pt [in] A point for which the deviation is needed to be calculated represented with an instance of the OdGePoint3d class. \returns The current deviation value for the specified point. */ double deviation(const OdGiDeviationType type, const OdGePoint3d& pt) const override; /** \details Handles the viewport clipping (used for texts and hatches as pdf paths). \param bEnable [in] A flag value that enables (if equals to true) or disables (if equals to false) the clipping. */ void enableClipper(bool bEnable) { if(m_iExportToBlock && !m_iExportNonGrapchicalInfo) //viewport clipping should be disabled in this case return; if (bEnable) m_pViewportClip->enable(); else m_pViewportClip->disable(); } /** \details Disables the color merge (used to export texts wipeouts via metafile). */ void disableColorMerge() { m_bDisableColorMerge = true; } /** \details Passes the hyperlink to the device geometry (pdf). \param data [in] A hyperlink data. \param ext [in] An extents object. \param bFromMf [in] A flag value that determines whether the hyperlink is passed from the meta-file. */ void passHyperlinkToGeometry(const HyperlinkData& data, const OdGeExtents3d& ext, bool bFromMf); /** \details Passes the text annotation to the device geometry (pdf). \param sText [in] A string that contains the annotation text. \param layerName [in] A string that contains the layer name. \param ext [in] An extents object. \param bFromMf [in] A flag value that determines whether the text annotation is passed from the meta-file. */ void passTextAnnotationToGeometry(const OdString& sText, const OdString &layerName, const OdGeExtents3d& ext, bool bFromMf); /** \details Passes the hatch loop from the metafile to the device geometry (pdf). \param loopPoints [in] A reference to the loop points array. \param clipPoints [in] A reference to the clip points array. \param bFromMf [in] A flag value that determines whether the text annotation is passed from the meta-file. */ void passHatchLoopToGeometry(const OdGePoint3dArray& loopPoints, const OdGePoint2dArray& clipPoints, bool bFromMf); /** \details Get viewport clipping contour. \param clipPoints [in] A reference to the clip points array. */ void calculateViewportClip(OdGePoint2dArray& clipPoints); /** \details Checks whether the displaying stage of the export process is in progress. \returns true if the printing to a PDF string is in progress; otherwise, the method returns false. */ bool isDisplaying() const { return GETBIT(vectorizingFlags(), kDisplaying); } /** \details Check whether the entity is clipped by viewport at the displaying stage. \param extents [in] An OdGeExtents3d object that represents the entity extents. \returns A OdGiOrthoClipperEx::VisibilityStatus value. */ OdGiOrthoClipperEx::VisibilityStatus checkViewportClipping(const OdGeExtents3d &extents) const { if (!m_pViewportClip.isNull()) return m_pViewportClip->checkExtentsVisibility(extents); else return OdGiOrthoClipperEx::kStatusVisible; } /** \details Returns or creates GsDevice \returns pointer to GsDevice. */ OdGsDevicePtr getBitmapDevice(); /** \details Adjusts RenderMode for current View */ void adjustRenderMode() override; //DOM-IGNORE-BEGIN friend class PDF2dExportDevice; friend class PDF2dExportHLRContext; void drawOwnerDrawDc( const OdGePoint3d& _origin, const OdGeVector3d& _u, const OdGeVector3d& _v, const OdGiSelfGdiDrawable* pDrawable, bool bDcAligned, bool bAllowClipping); bool getOwnerDrawDcAsImage( const OdGePoint3d& _origin, const OdGeVector3d& _u, const OdGeVector3d& _v, const OdGiSelfGdiDrawable* pDrawable, bool bDcAligned, bool bAllowClipping, ImageData& resImg); /** \details Retrieves the object obscured color based on the obscured line type and color requested from the database. \returns The object obscured color. */ OdCmEntityColor getObjectObscuredColor() const; /** \details Sets the new obscured color for the object. \param clr [in] An obscured color to be set. */ void setObjectObscuredColor(const OdCmEntityColor& clr) { m_objectObscuredColor = clr; } /** \details Draw images generated from the shells into pdf. \param aImg [in] An array of images. nImg [in] An array size. */ void drawImages(const ImageData* aImg, OdUInt32 nImg); private: /** \details Returns the name of the block that is currently being displayed and a flag that determines whether the block is an external reference. \param node [in] An OdGsEntityNode object that represents the block. \param bXref [out] A placeholder for the flag value that shows whether the block is an external reference (true) or not (false). \returns A string that contains the name of the block. */ OdString currentBlockName(OdGsEntityNode &node, bool& bXref, OdGsBaseContext* pContext) const; /** \details Plays non-graphical information such as annotations etc from GsCache */ bool playNonGraphicInfo(const OdGsGeomPortion* pPortion, OdGsBaseContext* pContext, OdGsEntityNode &node); bool doDrawImp(OdUInt32 drawableFlags, const OdGiDrawable* pDrawable, const OdString &layerName); bool drawHatch(OdUInt32 drawableFlags, const OdGiDrawable* pDrawable, OdDbBaseHatchPE& hatchPE); bool drawSolidHatch(OdUInt32 drawableFlags, const OdGiDrawable* pDrawable, OdDbBaseHatchPE& hatchPE); void drawTextByFragments(const OdGePoint3d& position, const OdGeVector3d& normal, const OdGeVector3d& direction, const OdChar* msg, OdInt32 length, bool raw, const OdGiTextStyle* pTextStyle, const OdGeVector3d& uNorm, const OdGeVector3d& vNorm, bool bTextAsGeom, bool bToMf); void doDrawText(const OdGePoint3d& position, const OdGeVector3d& normal, const OdGeVector3d& direction, const OdChar* msg, OdInt32 length, bool raw, const OdGiTextStyle* pTextStyle, bool bAsGeom); void switchTextOnlyGeomForDisplay(bool bOn); bool isSearchableText(const OdGiTextStyle* pStyle) const; void saveHatchToMetafiler(OdInt32 numVertices, const OdGePoint3d* vertexList, OdInt32 faceListSize, const OdInt32* faceList, const OdGiEdgeData* pEdgeData, const OdGiFaceData* pFaceData, const OdGiVertexData* pVertexData); bool processSolidShell( const OdGeExtents3d& extents, OdUInt32 clipStat, OdInt32 numVertices, const OdGePoint3d* vertexList, OdInt32 faceListSize, const OdInt32* faceList, const OdGiEdgeData* pEdgeData, const OdGiFaceData* pFaceData, const OdGiVertexData* pVertexData); HyperlinkData* m_curHl; //hyperlink data of an innermost object for which doDraw() is executed (null if no hyperlink) OdString m_annotationText; //collector for text annotation for searchable text OdGeMatrix3d m_WorldToCameraMatrix; // matrix of transformation from world to camera coordinates OdGiPlotGeneratorPtr m_pPlotstyler; // Plot style generator. mutable OdGiDrawablePtr m_pSolidHatch; // Smart pointer to /OdDbHatch/ class instance implementing solid hatch mode. OdGsDevicePtr m_bitmapDevice; // Bitmap device to draw entities as images OdCmEntityColor m_objectObscuredColor; //Color for obscured lines PDF2dExportHLRContext* m_hlrCtx; //context for HLRemover node bool m_bObscuredLinesOutput;//Determines if HLRemover currenly outputs hidden lines mutable bool m_bHatchToBitmapMode; // Determines if the view can be hatched to bitmap mode (*true*) or can not (*false*). bool m_bAdditionalClip; bool m_bRestartClipper; bool m_bDisableColorMerge; //Color merge flag bool m_bTextGeomConnected; OdUInt32 m_iExportToBlock; //determines if in current moment, displaying into pdf block is running OdUInt32 m_iExportNonGrapchicalInfo; //determines if in current moment, displaying non-graphical info into pdf block is running OdUInt32 m_iSkipXrefBlock; //determines if in current moment, displaying of Xref is running and it should not be exported as block OdArray m_MFTransforms; mutable bool m_bValidMfToDeviceMatrix; mutable OdGeMatrix3d m_mfToDeviceMatrix; OdGsDCRect m_screenRect; OdGiConveyorConnector m_textOnlyEntryPointForDisplay; //Support searchable text in rendered views //DOM-IGNORE-END }; // end PDF2dExportView } #endif // #ifndef _PDF_2D_EXPORT_VIEW_INCLUDED_