You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AppFlow/FITK_Component/FITKGeoOCCIOHDF5/FITKOCCHDF5AdaptorOperGeome...

199 lines
7.0 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*****************************************************************//**
*
* @file FITKOCCHDF5AdaptorOperGeometryFace.h
* @brief HDF5 Adaptor OperGeometryFace。
* @author fulipeng (flipengqd@yeah.net)
* @date 2024-09-13
*
*********************************************************************/
#ifndef __FITKOCCHDF5ADAPTOROPERGEOMETRYFACE_H__
#define __FITKOCCHDF5ADAPTOROPERGEOMETRYFACE_H__
#include "FITKGeoOCCIOHDF5API.h"
#include "FITK_Kernel/FITKCore/FITKCoreMacros.h"
#include "FITKOCCHDF5AdaptorBasicGeometryFace.h"
#include "FITK_Kernel/FITKAdaptor/FITKIOAdaptorFactory.h"
#include "FITK_Interface/FITKInterfaceIO/FITKAbstractHDF5Writer.h"
#include "FITK_Interface/FITKInterfaceGeoIOHDF5/FITKAbstractHDF5Adaptor.h"
ForwardDeclarNS(Core, FITKAbstractDataObject);
ForwardDeclarNS(Interface, FITKAbsGeoModelSurface);
ForwardDeclarNS(Interface, FITKAbsGeoCommand);
ForwardDeclarNS(Interface, FITKAbsGeoModelOperFace);
ForwardDeclarNS(H5, H5File);
ForwardDeclarNS(H5, Group);
ForwardDeclarNS(H5, H5Object);
ForwardDeclarNS(H5, DataType);
namespace IO
{
/**
* @brief HDF5 Adaptor Basic Geometry Face
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-13
*/
class FITKGEOOCCIOHDF5API FITKOCCHDF5AdaptorOperGeometryFace : public FITKOCCHDF5AdaptorBasicGeometryFace
{
public:
/**
* @brief Construct a new FITKOCCHDF5AdaptorOperGeometryFace object
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-13
*/
explicit FITKOCCHDF5AdaptorOperGeometryFace() = default;
virtual ~FITKOCCHDF5AdaptorOperGeometryFace() = default;
/**
* @brief 获取适配器数据类型名
* @return 适配器数据类型名
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-13
*/
QString getAdaptorClass() override;
/**
* @brief 适配器读取
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-13
*/
bool adaptR() override;
/**
* @brief 适配器写出
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-13
*/
bool adaptW() override;
protected:
/**
* @brief 读取基础几何面
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-12
*/
bool readOperGeometryFace(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出基础几何面
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-12
*/
bool writeOperGeometryFace(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 读取操作几何面
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-12
*/
bool readOperGeometryRectangularTrimmedSurface(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出操作几何面
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-12
*/
bool writeOperGeometryRectangularTrimmedSurface(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 读取操作几何面 抽象面操作类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-12
*/
bool readOperGeometryOperFaceBase(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出操作几何面 抽象面操作类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-12
*/
bool writeOperGeometryOperFaceBase(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 读取操作几何面 填补缝隙
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-12
*/
bool readOperGeometryOperFaceFillGaps(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出操作几何面 填补缝隙
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-12
*/
bool writeOperGeometryOperFaceFillGaps(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 读取操作几何面 填补孔洞
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-12
*/
bool readOperGeometryOperFaceFillHoles(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出操作几何面 填补孔洞
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-12
*/
bool writeOperGeometryOperFaceFillHoles(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 读取操作几何面 删除悬浮边
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-12
*/
bool readOperGeometryOperFaceDeleteFloatingEdge(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出操作几何面 删除悬浮边
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-12
*/
bool writeOperGeometryOperFaceDeleteFloatingEdge(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
};
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelSurface, FITKOCCHDF5AdaptorOperGeometryFace, 1)
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelOperFace, FITKOCCHDF5AdaptorOperGeometryFace, 2)
}
#endif