/*****************************************************************//** * * @file FITKOCCHDF5AdaptorOperGeometryCurve.h * @brief HDF5 Adaptor OperGeometryCurve。 * @author fulipeng (flipengqd@yeah.net) * @date 2024-09-11 * *********************************************************************/ #ifndef __FITKOCCHDF5ADAPTOROPERGEOMETRYCURVE_H__ #define __FITKOCCHDF5ADAPTOROPERGEOMETRYCURVE_H__ #include "FITKGeoOCCIOHDF5API.h" #include "FITKOCCHDF5AdaptorBasicGeometryCurve.h" #include "FITK_Kernel/FITKCore/FITKCoreMacros.h" #include "FITK_Kernel/FITKAdaptor/FITKIOAdaptorFactory.h" #include "FITK_Interface/FITKInterfaceIO/FITKAbstractHDF5Writer.h" #include "FITK_Interface/FITKInterfaceGeoIOHDF5/FITKAbstractHDF5Adaptor.h" ForwardDeclarNS(Core, FITKAbstractDataObject); ForwardDeclarNS(Interface, FITKAbsGeoCommand); ForwardDeclarNS(Interface, FITKAbsGeoModelCurve); ForwardDeclarNS(Interface, FITKAbsGeoModelOperLine); ForwardDeclarNS(H5, H5File); ForwardDeclarNS(H5, Group); ForwardDeclarNS(H5, H5Object); ForwardDeclarNS(H5, DataType); namespace IO { /** * @brief HDF5 Adaptor Oper Geometry Curve * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ class FITKGEOOCCIOHDF5API FITKOCCHDF5AdaptorOperGeometryCurve : public FITKOCCHDF5AdaptorBasicGeometryCurve { public: /** * @brief Construct a new FITKOCCHDF5AdaptorOperGeometryCurve object * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ explicit FITKOCCHDF5AdaptorOperGeometryCurve() = default; virtual ~FITKOCCHDF5AdaptorOperGeometryCurve() = 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 readOperGeometryCurve(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何曲线 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool writeOperGeometryCurve(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 读取操作几何 裁剪曲线 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool readOperGeometryTrimmedCurve(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何 裁剪曲线 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool writeOperGeometryTrimmedCurve(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 读取操作几何 偏移曲线 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-10 */ bool readOperGeometryOffsetCurve(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何 偏移曲线 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-10 */ bool writeOperGeometryOffsetCurve(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 读取操作几何 线在面上的投影 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool readOperGeometryCurveProjectionOnSurface(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何 线在面上的投影 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool writeOperGeometryCurveProjectionOnSurface(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 读取操作几何 面和面的交线 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool readOperGeometrySurfaceIntersectionSurface(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何 面和面的交线 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool writeOperGeometrySurfaceIntersectionSurface(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 读取操作几何 桥接曲线 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool readOperGeometryBridgeCurve(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何 桥接曲线 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool writeOperGeometryBridgeCurve(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 读取操作几何 面的边线 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool readOperGeometrySurfaceEdge(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何 面的边线 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool writeOperGeometrySurfaceEdge(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 读取操作几何 基类 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool readOperGeometryOperLineBase(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何 基类 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool writeOperGeometryOperLineBase(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 读取操作几何 合并线数据结构 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool readOperGeometryMergeOperLine(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何 合并线数据结构 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool writeOperGeometryMergeOperLine(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 读取操作几何 线中点分割操作数据结构 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool readOperGeometryMiddleOperLine(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何 线中点分割操作数据结构 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool writeOperGeometryMiddleOperLine(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 读取操作几何 合并线数据结构 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool readOperGeometryAngleOperLine(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); /** * @brief 写出操作几何 合并线数据结构 * @param comm 几何命令 * @param h5Group 数据块 * @return 状态 true成功, false失败 * @author fulipeng (fulipengqd@yeah.net) * @date 2024-09-11 */ bool writeOperGeometryAngleOperLine(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group); }; Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelCurve, FITKOCCHDF5AdaptorOperGeometryCurve, 1) Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelOperLine, FITKOCCHDF5AdaptorOperGeometryCurve, 2) } #endif