/////////////////////////////////////////////////////////////////////////////// // 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 OdGiRasterImagePtr; class OdString; /** \details This class represents Layout objects in an OdDbDatabase instance. \sa TD_Db */ 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 OdDbLayoutPtr; #include "TD_PackPop.h" #endif