/////////////////////////////////////////////////////////////////////////////// // 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 _BCF_3_0_VISUALIZATION_INFO_H #define _BCF_3_0_VISUALIZATION_INFO_H #include "BcfCommon.h" #include "OdArray.h" #include "OdGUID.h" #include "BcfElement.h" /** \details Contains declarations related to working with BCF files content. */ namespace OdBcf { class OdBcfValidationContext; } /** \details Contains declarations related to working with data of the BCF format version 3.0. */ namespace OdBcf_3_0 { class OdBcfComponents; /** \details A data type that represents a smart pointer to an OdBcfComponents object. */ typedef OdSmartPtr OdBcfComponentsPtr; class OdBcfOrthogonalCamera; /** \details A data type that represents a smart pointer to an OdBcfOrthogonalCamera object. */ typedef OdSmartPtr OdBcfOrthogonalCameraPtr; class OdBcfPerspectiveCamera; /** \details A data type that represents a smart pointer to an OdBcfPerspectiveCamera object. */ typedef OdSmartPtr OdBcfPerspectiveCameraPtr; class OdBcfLines; /** \details A data type that represents a smart pointer to an OdBcfLines object. */ typedef OdSmartPtr OdBcfLinesPtr; class OdBcfClippingPlanes; /** \details A data type that represents a smart pointer to an OdBcfClippingPlanes object. */ typedef OdSmartPtr OdBcfClippingPlanesPtr; class OdBcfBitmaps; /** \details A data type that represents a smart pointer to an OdBcfBitmaps object. */ typedef OdSmartPtr OdBcfBitmapsPtr; class OdBcfSession; /** \details A class that stores visualization information within the BCF format. */ class BCF_3_0_EXPORT OdBcfVisualizationInfoData { public: /** \details Creates a new visualization information data object with default parameters. */ OdBcfVisualizationInfoData(); /** \details A smart pointer to BCF components related to the visualization information. */ OdBcfComponentsPtr m_pComponents; /** \details A smart pointer to a BCF orthogonal camera object. */ OdBcfOrthogonalCameraPtr m_pOrthogonalCamera; /** \details A smart pointer to a BCF perspective camera object. */ OdBcfPerspectiveCameraPtr m_pPerspectiveCamera; /** \details A smart pointer to a BCF lines object. */ OdBcfLinesPtr m_pLines; /** \details A smart pointer to a BCF clipping planes object. */ OdBcfClippingPlanesPtr m_pClippingPlanes; /** \details A smart pointer to a BCF bitmaps object. */ OdBcfBitmapsPtr m_pBitmaps; public: /** \details A global unique identifier of the visualization information object. \remarks Set this field only in conjunction with createManually flag in OdBcfSession::createVisualizationInfo. */ OdGUID m_guid; }; /** \details A class that stores and operates the visualization information within the BCF format. */ class BCF_3_0_EXPORT OdBcfVisualizationInfo : public OdBcf::OdBcfElement, protected OdBcfVisualizationInfoData { public: //DOM-IGNORE-BEGIN ODRX_DECLARE_MEMBERS(OdBcfVisualizationInfo); //DOM-IGNORE-END /** \details Reads XML data into ODA data structures. \param pParent [in] A pointer to the parent element of the data structure. \returns eOk if data is successfully read; otherwise, the method returns an appropriate error code. */ virtual OdResult inFields(TiXmlElement *pParent) ODRX_OVERRIDE; /** \details Writes data into XML structures. \param pParent [in] A pointer to the parent element of the data structure. \returns eOk if data is successfully written; otherwise, the method returns an appropriate error code. */ virtual OdResult outFields(TiXmlElement *pParent) const ODRX_OVERRIDE; /** \details Retrieves the visualization info components. \returns A smart pointer to the OdBcfComponents object associated with the visualization info. \remarks The components object returned by the method can't be modified in the calling subroutine. */ const OdBcfComponentsPtr& getComponents() const; /** \details Checks whether the components of the visualization info are not initialized. \returns true if the components are not initialized; otherwise, the method returns false. */ bool isComponentsUnset() const; /** \details Retrieves the orthogonal camera object from the visualization information instance. \returns A smart pointer to the OdBcfOrthogonalCamera object. \remarks The OdBcfOrthogonalCamera object returned by the method can't be modified in the calling subroutine. */ const OdBcfOrthogonalCameraPtr& getOrthogonalCamera() const; /** \details Checks whether the orthogonal camera object within the visualization information is not initialized. \returns true if the orthogonal camera object is not initialized; otherwise, the method returns false. */ bool isOrthogonalCameraUnset() const; /** \details Retrieves the perspective camera object from the visualization information instance. \returns A smart pointer to the OdBcfPerspectiveCamera object. \remarks The OdBcfPerspectiveCamera object returned by the method can't be modified in the calling subroutine. */ const OdBcfPerspectiveCameraPtr& getPerspectiveCamera() const; /** \details Checks whether the perspective camera object within the visualization information is not initialized. \returns true if the perspective camera object is not initialized; otherwise, the method returns false. */ bool isPerspectiveCameraUnset() const; /** \details Retrieves the lines object from the visualization information instance. \returns A smart pointer to the OdBcfLines object. \remarks The OdBcfLines object returned by the method can't be modified in the calling subroutine. */ const OdBcfLinesPtr& getLines() const; /** \details Checks whether the lines object within the visualization information is not initialized. \returns true if the lines object is not initialized; otherwise, the method returns false. */ bool isLinesUnset() const; /** \details Retrieves the clipping planes from the visualization information instance. \returns A smart pointer to the OdBcfClippingPlanes object. \remarks The OdBcfClippingPlanes object returned by the method can't be modified in the calling subroutine. */ const OdBcfClippingPlanesPtr& getClippingPlanes() const; /** \details Checks whether the clipping planes object within the visualization information is not initialized. \returns true if the clipping planes object is not initialized; otherwise, the method returns false. */ bool isClippingPlanesUnset() const; /** \details Retrieves the visualization info bitmaps. \returns A smart pointer to the OdBcfBitmaps object associated with the visualization info. \remarks The bitmaps object returned by the method can't be modified in the calling subroutine. */ const OdBcfBitmapsPtr& getBitmaps() const; /** \details Checks whether the bitmaps object within the visualization information is not initialized. \returns true if the bitmaps object array is not initialized; otherwise, the method returns false. */ bool isBitmapsUnset() const; /** \details Retrieves the global unique identifier (GUID) of the visualization information object. \returns An OdGUID object that contains the visualization info GUID. \remarks The GUID returned by the method can't be modified in the calling subroutine. */ const OdGUID& getGuid() const ODRX_OVERRIDE; /** \details Checks whether the global unique identifier (GUID) of the visualization info object is not initialized. \returns true if the GUID is not initialized; otherwise, the method returns false. */ bool isGuidUnset() const; //DOM-IGNORE-BEGIN protected: /** \details Sets the global unique identifier (GUID) of the visualization info object. \param guidValue [in] An OdGUID object that represents the GUID to be set. */ void setGuid(const OdGUID &guidValue); /** \details An assignment operator for the visualizaion info objects. \param val [in] Another visualization info object to be assigned (right-hand operand of the assignment operation). \returns The reference to the visualization info object modified with the assignment operation. */ OdBcfVisualizationInfo& operator = (const OdBcfVisualizationInfoData& val); /** \details Checks whether the visualization information instance has all required fields initialized. \param context [in/out] A raw pointer to the validation context to store results in. \returns true if all required fields are initialized; otherwise the method returns false. */ virtual bool validateData(OdBcf::OdBcfValidationContext *context) const ODRX_OVERRIDE; friend class OdBcfSession; //DOM-IGNORE-END }; /** \details A data type that represents a smart pointer to an OdBcfVisualizationInfo object. */ typedef OdSmartPtr OdBcfVisualizationInfoPtr; } //namespace OdBcf_3_0 #endif // _BCF_3_0_VISUALIZATION_INFO_H