/////////////////////////////////////////////////////////////////////////////// // 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 _ODSPATIALREFERENCE_ODTRANSFORMATIONINFO_INCLUDED_ #define _ODSPATIALREFERENCE_ODTRANSFORMATIONINFO_INCLUDED_ #include "OdCoordinateReferenceSystemDefinition.h" namespace OdSpatialReference { class OdTransformationInfo; /** \details This template class is a specialization of the OdSmartPtr class for OdTransformationInfo object pointers. */ typedef OdSmartPtr OdTransformationInfoPtr; /** \details This template class is a specialization of the OdArray class for OdTransformationInfo object pointers. */ typedef OdArray OdTransformationInfoArray; class OdTransformationInfoImpl; /** \details This class represents a transformation info. */ class TD_SPATIALREFERENCE_API OdTransformationInfo : public OdRxObject { ODSPREF_RX_WITH_IMPL_DECLARE_MEMBERS(OdTransformationInfo); public: /** \details This enumeration represents the transformation info types. */ enum TransformationInfoType { /** Transformation info type is unknown. */ kUnknown = 0, /** Transformation info type represents OdGeodeticPathDefinition object. */ kGeodeticPath = 1, /** Transformation info type represents OdGeodeticTransformationDefinition object. */ kGeodeticTransformation = 2 }; /** \details Loads and returns all transformation info objects by source and target coordinate systems. \param pCsSource [in] Source coordinate system definition. \param pCsTarget [in] Target coordinate system definition. \param arrTransformationInfo [out] Result array of transformation info objects. \returns Returns eOK if successful, or an appropriate error code if not. */ static OdResult loadAll(const OdCoordinateReferenceSystemDefinition* pCsSource, const OdCoordinateReferenceSystemDefinition* pCsTarget, OdTransformationInfoArray& arrTransformationInfo); /** \details Loads and returns all transformation info objects by source and target coordinate systems. \param sSourceCsCode [in] Source coordinate system code. \param sTargetCsCode [in] Target coordinate system code. \param arrTransformationInfo [out] Result array of transformation info objects. \returns Returns eOK if successful, or an appropriate error code if not. */ static OdResult loadAll(const OdString& sSourceCsCode, const OdString& sTargetCsCode, OdTransformationInfoArray& arrTransformationInfo); /** \details Gets the code of this transformation info. \returns String containing the code of this transformation info. */ const OdString& getCode() const; /** \details Sets the code of this transformation info. \param sCode [in] Transformation info code. */ void setCode(const OdString& sCode); /** \details Gets the type of this transformation info. \returns Type of this transformation info. */ TransformationInfoType getType() const; /** \details Sets the type for this transformation info. \param eType [in] Transformation info type. */ void setType(TransformationInfoType eType); }; } #endif //_ODSPATIALREFERENCE_ODTRANSFORMATIONINFO_INCLUDED_