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_Interface/FITKInterfaceIOHDF5/FITKInterfaceHDF5AdaptorAss...

192 lines
6.1 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 FITKInterfaceHDF5AdaptorAssembly.h
* @brief 读写HDF5文件的ASSembly类
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-05-31
*
*/
#ifndef _FITKINTERFACEHDF5ADAPTORASSEMBLY_H__
#define _FITKINTERFACEHDF5ADAPTORASSEMBLY_H__
#include "FITKInterfaceIOHDF5API.h"
#include "FITKAbstractHDF5Adaptor.h"
#include "FITK_Kernel/FITKAdaptor/FITKIOAdaptorFactory.h"
//前置声明
ForwardDeclarNS(Interface, FITKAssembly)
ForwardDeclarNS(Interface, FITKModelSet)
ForwardDeclarNS(Interface, FITKMeshSurface)
ForwardDeclarNS(Interface, FITKComponentManager)
ForwardDeclarNS(Interface, FITKAbstractAssInstance)
ForwardDeclarNS(Interface, FITKComponentManager)
namespace IO
{
/**
* @brief HDF5 Assembly 读写适配器
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-05-31
*/
class FITKINTERFACEHDF5IOAPI FITKInterfaceHDF5AdaptorAssembly : public FITKAbstractHDF5Adaptor
{
public:
explicit FITKInterfaceHDF5AdaptorAssembly() = default;
virtual ~FITKInterfaceHDF5AdaptorAssembly() = default;
/**
* @brief 获取适配器数据类型名
* @return 适配器数据类型名
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-05-31
*/
QString getAdaptorClass() override;
/**
* @brief 适配器读取
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-05-31
*/
bool adaptR() override;
/**
* @brief 适配器写出
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-05-31
*/
bool adaptW() override;
protected:
/**
* @brief 读取装配
* @param assembly 装配
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-06-19
*/
virtual bool readAssembly(Interface::FITKAssembly* assembly, H5::Group& h5Group);
/**
* @brief 写出装配
* @param assembly 装配
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-06-19
*/
virtual bool writeAssembly(Interface::FITKAssembly* assembly, H5::Group& h5Group);
private:
/**
* @brief 读取集合与表面
* @param setSurfManager 集合与表面管理器
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-06-19
*/
bool readSetSurf(Interface::FITKComponentManager* setSurfManager, H5::Group& h5Group);
/**
* @brief 读取集合
* @param set 集合
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-06-19
*/
bool readSet(Interface::FITKModelSet * set, H5::Group& h5Group);
/**
* @brief 读取表面
* @param surface 表面
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-06-19
*/
bool readSurface(Interface::FITKMeshSurface* surface, H5::Group& h5Group);
/**
* @brief 读取实例
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-06-19
*/
bool readInstance(H5::Group& h5Group);
/**
* @brief 读取实例
* @param surface 表面
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-06-19
*/
bool readInstanceTR(Interface::FITKAbstractAssInstance* assInstance, H5::Group& h5Group);
bool readInstanceM4(Interface::FITKAbstractAssInstance* assInstance, H5::Group& h5Group);
bool writeSet(Interface::FITKModelSet * set, H5::Group& h5Group);
/**
* @brief 写出集合
* @param surface 表面
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-06-19
*/
bool writeSurface(Interface::FITKMeshSurface* surface, H5::Group& h5Group);
/**
* @brief 写出集合与表面
* @param setSurfManager 集合与表面管理器
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-06-19
*/
bool writeSetSurf(Interface::FITKComponentManager* setSurfManager, H5::Group& h5Group);
/**
* @brief 写出实例
* @param assInstance 实例
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-06-19
*/
bool writeInstance(Interface::FITKAbstractAssInstance* assInstance, H5::Group& h5Group);
/**
* @brief 写出实例
* @param assInstance 实例
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-06-19
*/
bool writeInstanceTR(Interface::FITKAbstractAssInstance* assInstance, H5::Group& h5Group);
/**
* @brief 写出实例
* @param assInstance 实例
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-06-19
*/
bool writeInstanceM4(Interface::FITKAbstractAssInstance* assInstance, H5::Group& h5Group);
};
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAssembly, FITKInterfaceHDF5AdaptorAssembly)
}
#endif