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/FITKAbsGeomTools.h

167 lines
5.1 KiB
C

/**
*
* @file FITKAbsGeomTools.h
* @brief
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
*
*/
#ifndef _FITK_ABSTRACT_GEOM_TOOLS_H___
#define _FITK_ABSTRACT_GEOM_TOOLS_H___
#include "FITK_Kernel/FITKCore/FITKAbstractObject.hpp"
#include "FITKInterfaceGeometryAPI.h"
namespace Interface
{
class FITKAbsVirtualTopo;
/**
* @brief
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
*/
class FITKInterfaceGeometryAPI FITKAbstractGeomPointTool :
public Core::FITKAbstractObject
{
public:
/**
* @brief Construct a new FITKAbstractGeomPointTool object
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
*/
explicit FITKAbstractGeomPointTool() = default;
/**
* @brief Destroy the FITKAbstractGeomPointTool object
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
*/
virtual ~FITKAbstractGeomPointTool() = default;
/**
* @brief
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
* @return FITKAbstractGeomPointTool*
*/
static FITKAbstractGeomPointTool* createTool();
/**
* @brief
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
* @param id id
* @param xyz
* @return true
* @return false
*/
virtual bool getXYZ(const int & id, double* xyz) = 0;
/**
* @brief
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
* @param vtp
* @param xyz
* @return true
* @return false
*/
virtual bool getXYZ(FITKAbsVirtualTopo* vtp, double* xyz) = 0;
};
/**
* @brief
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-09-05
*/
class FITKInterfaceGeometryAPI FITKAbstractGeomPlaneFaceTool :
public Core::FITKAbstractObject
{
public:
/**
* @brief
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-09-05
*/
explicit FITKAbstractGeomPlaneFaceTool() = default;
/**
* @brief
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-09-05
*/
virtual ~FITKAbstractGeomPlaneFaceTool() = default;
/**
* @brief []
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-09-05
*/
static FITKAbstractGeomPlaneFaceTool* createTool();
/**
* @brief []
* @param idID[]
* @param pos
* @param normal
* @param up
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-09-05
*/
virtual bool getPlane(const int & id, double* pos, double* normal, double* up) = 0;
/**
* @brief []
* @param vtp
* @param pos
* @param normal
* @param up
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-09-05
*/
virtual bool getPlane(FITKAbsVirtualTopo* vtp, double* pos, double* normal, double* up) = 0;
};
/**
* @brief
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
*/
class FITKInterfaceGeometryAPI FITKAbstractGeomToolsCreator
{
public:
/**
* @brief Construct a new FITKAbstractGeomToolsCreator object
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
*/
explicit FITKAbstractGeomToolsCreator() = default;
/**
* @brief Destroy the FITKAbstractGeomToolsCreator object
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
*/
virtual ~FITKAbstractGeomToolsCreator() = 0;
/**
* @brief
* @return FITKAbstractGeomPointTool*
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
*/
virtual FITKAbstractGeomPointTool* createPointTool();
/**
* @brief []
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-09-05
*/
virtual FITKAbstractGeomPlaneFaceTool* createPlaneFaceTool();
};
}
#endif