/*****************************************************************//** * * @file FITKOCCHDF5AdaptorOperGeometry.h * @brief HDF5 Adaptor OperGeometry。 * @author fulipeng (flipengqd@yeah.net) * @date 2024-09-11 * *********************************************************************/ #ifndef __FITKOCCHDF5ADAPTOROPERGEOMETRY_H__ #define __FITKOCCHDF5ADAPTOROPERGEOMETRY_H__ #include "FITKGeoOCCIOHDF5API.h" #include "FITK_Kernel/FITKCore/FITKCoreMacros.h" #include "FITK_Kernel/FITKAdaptor/FITKIOAdaptorFactory.h" #include "FITK_Interface/FITKInterfaceGeoIOHDF5/FITKAbstractHDF5Adaptor.h" ForwardDeclarNS(Core, FITKAbstractDataObject); ForwardDeclarNS(Interface, FITKAbsGeoCommand); ForwardDeclarNS(Interface, FITKAbsGeoDelete); ForwardDeclarNS(Interface, FITKAbsGeoOperBool); ForwardDeclarNS(Interface, FITKAbsGeoModelOperImprintSolid); ForwardDeclarNS(Interface, FITKAbsGeoModelImport); ForwardDeclarNS(Interface, FITKAbsGeoModelExport); ForwardDeclarNS(Interface, FITKAbsGeoModelOperCompound); ForwardDeclarNS(H5, H5File); ForwardDeclarNS(H5, Group); ForwardDeclarNS(H5, H5Object); ForwardDeclarNS(H5, DataType); namespace IO { /** * @brief HDF5 Adaptor Basic Geometry Solid * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ class FITKGEOOCCIOHDF5API FITKOCCHDF5AdaptorOperGeometry : public FITKAbstractHDF5Adaptor { public: /** * @brief Construct a new FITKOCCHDF5AdaptorOperGeometry object * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ explicit FITKOCCHDF5AdaptorOperGeometry() = default; virtual ~FITKOCCHDF5AdaptorOperGeometry() = default; /** * @brief 获取适配器数据类型名 * @return 适配器数据类型名 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ QString getAdaptorClass() override; /** * @brief 适配器读取 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool adaptR() override; /** * @brief 适配器写出 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool adaptW() override; protected: /** * @brief 读取操作几何 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool readOperGeometry(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool writeOperGeometry(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 读取操作几何 删除 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool readOperGeometryDelete(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何 删除 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool writeOperGeometryDelete(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 读取操作几何 布尔 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool readOperGeometryBool(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何 布尔 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool writeOperGeometryBool(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 读取操作几何 抽象压印体操作类 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-13 */ bool readOperGeometryOperImprintSolid(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何 抽象压印体操作类 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-13 */ bool writeOperGeometryOperImprintSolid(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 读取操作几何 导入 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-13 */ bool readOperGeometryOperImport(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何 导入 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-13 */ bool writeOperGeometryOperImport(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 读取操作几何 导出 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-13 */ bool readOperGeometryOperExport(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何 导出 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-13 */ bool writeOperGeometryOperExport(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 读取操作几何 复合体操作抽象类 添加或删除 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-13 */ bool readOperGeometryOperCompoundBase(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何 复合体操作抽象类 添加或删除 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-13 */ bool writeOperGeometryOperCompoundBase(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); }; Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoDelete, FITKOCCHDF5AdaptorOperGeometry, 1) Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoOperBool, FITKOCCHDF5AdaptorOperGeometry, 2) Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelOperImprintSolid, FITKOCCHDF5AdaptorOperGeometry, 3) Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelImport, FITKOCCHDF5AdaptorOperGeometry, 4) Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelExport, FITKOCCHDF5AdaptorOperGeometry, 5) Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelOperCompound, FITKOCCHDF5AdaptorOperGeometry, 6) } #endif