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...

356 lines
14 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 FITKOCCHDF5AdaptorOperGeometrySolid.h
* @brief HDF5 Adaptor OperGeometrySolid。
* @author fulipeng (flipengqd@yeah.net)
* @date 2024-09-09
*
*********************************************************************/
#ifndef __FITKOCCHDF5ADAPTOROPERGEOMETRYSOLID_H__
#define __FITKOCCHDF5ADAPTOROPERGEOMETRYSOLID_H__
#include "FITKGeoOCCIOHDF5API.h"
#include "FITKOCCHDF5AdaptorBasicGeometrySolid.h"
#include "FITK_Kernel/FITKCore/FITKCoreMacros.h"
#include "FITK_Kernel/FITKAdaptor/FITKIOAdaptorFactory.h"
ForwardDeclarNS(Core, FITKAbstractDataObject);
ForwardDeclarNS(Interface, FITKAbsGeoModelOperImprintSolid);
ForwardDeclarNS(Interface, FITKAbsGeoModelChamferSolid);
ForwardDeclarNS(Interface, FITKAbsGeoModelFilletSolid);
ForwardDeclarNS(Interface, FITKAbsGeoModelDefeatureSolid);
ForwardDeclarNS(Interface, FITKAbsGeoModelRemoveChamferSolid);
ForwardDeclarNS(Interface, FITKAbsGeoModelRemoveFilletSolid);
ForwardDeclarNS(Interface, FITKAbsGeoModelFillHoleSolid);
ForwardDeclarNS(H5, H5File);
ForwardDeclarNS(H5, Group);
ForwardDeclarNS(H5, H5Object);
ForwardDeclarNS(H5, DataType);
namespace IO
{
/**
* @brief HDF5 Adaptor Oper Geometry Solid
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
class FITKGEOOCCIOHDF5API FITKOCCHDF5AdaptorOperGeometrySolid : public FITKOCCHDF5AdaptorBasicGeometrySolid
{
public:
/**
* @brief Construct a new FITKOCCHDF5AdaptorOperGeometrySolid object
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-09
*/
explicit FITKOCCHDF5AdaptorOperGeometrySolid() = default;
virtual ~FITKOCCHDF5AdaptorOperGeometrySolid() = default;
/**
* @brief 获取适配器数据类型名
* @return 适配器数据类型名
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
QString getAdaptorClass() override;
/**
* @brief 适配器读取
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool adaptR() override;
/**
* @brief 适配器写出
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool adaptW() override;
protected:
/**
* @brief 读取基础几何体
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool readOperGeometrySolid(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出基础几何体
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool writeOperGeometrySolid(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 读取基础几何体 倒角抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool readOperGeometrySolidChamfer(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出基础几何体 倒角抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool writeOperGeometrySolidChamfer(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 读取基础几何体 倒圆抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool readOperGeometrySolidFillet(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出基础几何体 倒圆抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool writeOperGeometrySolidFillet(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 读取基础几何体 删除倒角抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool readOperGeometrySolidRemoveChamfer(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出基础几何体 删除倒角抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool writeOperGeometrySolidRemoveChamfer(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 读取基础几何体 删除倒圆抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool readOperGeometrySolidRemoveFillet(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出基础几何体 删除倒圆抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool writeOperGeometrySolidRemoveFillet(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 读取基础几何体 特征移除抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool readOperGeometrySolidDefeature(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出基础几何体 特征移除抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool writeOperGeometrySolidDefeature(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 读取基础几何体 填补孔洞抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool readOperGeometrySolidFillHole(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出基础几何体 填补孔洞抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool writeOperGeometrySolidFillHole(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 读取基础几何体 基类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool readOperGeometrySolidBase(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出基础几何体 基类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool writeOperGeometrySolidBase(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 读取基础几何体 封闭曲面形成的体
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool readOperGeometrySolidClosedSurface(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出基础几何体 封闭曲面形成的体
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool writeOperGeometrySolidClosedSurface(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 读取基础几何体 拉伸实体抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool readOperGeometrySolidExtrude(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出基础几何体 拉伸实体抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool writeOperGeometrySolidExtrude(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 读取基础几何体 旋转实体抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool readOperGeometrySolidRevol(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出基础几何体 旋转实体抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool writeOperGeometrySolidRevol(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 读取基础几何体 扫略体抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool readOperGeometrySolidSweep(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出基础几何体 扫略体抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool writeOperGeometrySolidSweep(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 读取基础几何体 多截面扫略抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool readOperGeometrySolidMultiSection(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
/**
* @brief 写出基础几何体 多截面扫略抽象类
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
bool writeOperGeometrySolidMultiSection(Interface::FITKAbsGeoCommand* comm, H5::Group& h5Group);
};
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelBox, FITKOCCHDF5AdaptorOperGeometrySolid, 1)
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelSphere, FITKOCCHDF5AdaptorOperGeometrySolid, 2)
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelCylinder, FITKOCCHDF5AdaptorOperGeometrySolid, 3)
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelChamferSolid, FITKOCCHDF5AdaptorOperGeometrySolid, 4)
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelFilletSolid, FITKOCCHDF5AdaptorOperGeometrySolid, 5)
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelDefeatureSolid, FITKOCCHDF5AdaptorOperGeometrySolid, 6)
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelRemoveChamferSolid, FITKOCCHDF5AdaptorOperGeometrySolid, 7)
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelRemoveFilletSolid, FITKOCCHDF5AdaptorOperGeometrySolid, 8)
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelFillHoleSolid, FITKOCCHDF5AdaptorOperGeometrySolid, 9)
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelClosedSurfaceSolid, FITKOCCHDF5AdaptorOperGeometrySolid, 10)
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelExtrudeSolid, FITKOCCHDF5AdaptorOperGeometrySolid, 11)
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelRevolSolid, FITKOCCHDF5AdaptorOperGeometrySolid, 12)
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelSweepSolid, FITKOCCHDF5AdaptorOperGeometrySolid, 13)
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbsGeoModelMultiSectionSolid, FITKOCCHDF5AdaptorOperGeometrySolid, 14)
}
#endif