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/FITKInterfaceGeometry/FITKAbsVirtualTopoMapper.h

100 lines
3.1 KiB
C

/**
*
* @file FITKAbsVirtualTopoMapper.h
* @brief
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-20
*
*/
#ifndef _FITK_VIRTUAL_TOPO_MAPPER_H___
#define _FITK_VIRTUAL_TOPO_MAPPER_H___
#include "FITKInterfaceGeometryAPI.h"
#include "FITK_Kernel/FITKCore/FITKAbstractObject.hpp"
#include "FITKGeoEnum.h"
#include <QList>
namespace Interface
{
class FITKAbsVirtualTopo;
/**
* @brief
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-20
*/
class FITKInterfaceGeometryAPI FITKVirtualTopoMapper : public Core::FITKAbstractObject
{
public:
/**
* @brief Construct a new FITKVirtualTopoMapper object
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-20
*/
explicit FITKVirtualTopoMapper() = default;
/**
* @brief Destroy the FITKVirtualTopoMapper object
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-20
*/
virtual ~FITKVirtualTopoMapper() = default;
/**
* @brief
* @param[i] vtp
* @param[i] shapeType
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-20
*/
void mapTopo(FITKAbsVirtualTopo* vtp, FITKGeoEnum::VTopoShapeType shapeType);
/**
* @brief
* @param[i] vtpID ID
* @param[i] shapeType
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-20
*/
void mapTopo(int vtpID, FITKGeoEnum::VTopoShapeType shapeType);
/**
* @brief
* @return int
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-20
*/
int length();
/**
* @brief
* @param[i] index
* @return FITKAbsVirtualTopo*
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-20
*/
FITKAbsVirtualTopo* virtualTopo(const int index);
private:
/**
* @brief
* @param[i] topo
* @param[i] shapeType
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-20
*/
void iteratorLower(FITKAbsVirtualTopo* topo, FITKGeoEnum::VTopoShapeType shapeType);
/**
* @brief
* @param[i] topo
* @param[i] shapeType
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-20
*/
void iteratorUpper(FITKAbsVirtualTopo* topo, FITKGeoEnum::VTopoShapeType shapeType);
private:
/**
* @brief
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-20
*/
QList<FITKAbsVirtualTopo*> _mappedTopo{};
};
}
#endif