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/FITKGeoCompOCC/FITKOCCGeomTools.h

148 lines
4.4 KiB
C

/**
*
* @file FITKOCCGeomTools.h
* @brief OCC
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
*
*/
#ifndef _FITKOCC_GEOM_TOOLS_H___
#define _FITKOCC_GEOM_TOOLS_H___
#include "FITK_Interface/FITKInterfaceGeometry/FITKAbsGeomTools.h"
namespace OCC
{
/**
* @brief OCCInterfacegeomToolsCreator
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
*/
class FITKOCCToolCreator : public Interface::FITKAbstractGeomToolsCreator
{
public:
/**
* @brief Construct a new FITKOCCToolCreator object
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
*/
explicit FITKOCCToolCreator() = default;
/**
* @brief Destroy the FITKOCCToolCreator object
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
*/
virtual ~FITKOCCToolCreator() = default;
/**
* @brief
* @return Interface::FITKAbstractGeomPointTool*
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
*/
Interface::FITKAbstractGeomPointTool* createPointTool() override;
/**
* @brief []
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-09-05
*/
Interface::FITKAbstractGeomPlaneFaceTool* createPlaneFaceTool() override;
};
/**
* @brief
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
*/
class FITKOCCPointTool : public Interface::FITKAbstractGeomPointTool
{
public:
/**
* @brief Construct a new FITKOCCPointTool object
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
*/
explicit FITKOCCPointTool() = default;
/**
* @brief Destroy the FITKOCCPointTool object
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
*/
virtual ~FITKOCCPointTool() = default;
/**
* @brief
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
* @param id id
* @param xyz
* @return true
* @return false
*/
bool getXYZ(const int & id, double* xyz) override;
/**
* @brief
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-08-18
* @param vtp
* @param xyz
* @return true
* @return false
*/
bool getXYZ(Interface::FITKAbsVirtualTopo* vtp, double* xyz) override;
};
/**
* @brief OCC
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-09-05
*/
class FITKOCCPlaneFaceTool : public Interface::FITKAbstractGeomPlaneFaceTool
{
public:
/**
* @brief
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-09-05
*/
explicit FITKOCCPlaneFaceTool() = default;
/**
* @brief []
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-09-05
*/
virtual ~FITKOCCPlaneFaceTool() = default;
/**
* @brief []
* @param idID[]
* @param pos
* @param normal
* @param up
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-09-05
*/
bool getPlane(const int & id, double* pos, double* normal, double* up) override;
/**
* @brief []
* @param vtp
* @param pos
* @param normal
* @param up
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-09-05
*/
bool getPlane(Interface::FITKAbsVirtualTopo* vtp, double* pos, double* normal, double* up) override;
};
}
#endif