/** * * @file FITKRegionMeshSizeCylinder.h * @brief 圆柱区域声明 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-07-17 * */ #ifndef _FITK_REGION_MESH_SIZE_CYLINDER_H___ #define _FITK_REGION_MESH_SIZE_CYLINDER_H___ #include "FITKRegionMeshSize.h" namespace Interface { /** * @brief 圆柱区域声明 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-07-17 */ class FITKInterfaceMeshGenAPI FITKRegionMeshSizeCylinder : public FITKAbstractRegionMeshSize { public: /** * @brief Construct a new FITKRegionMeshSizeCylinder object * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-07-17 */ explicit FITKRegionMeshSizeCylinder(); /** * @brief Destroy the FITKRegionMeshSizeCylinder object * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-07-17 */ virtual ~FITKRegionMeshSizeCylinder() = default; /** * @brief 获取区域类型 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-07-17 * @return RegionType */ virtual RegionType getRegionType() override; /** * @brief 设置端面圆心坐标 * @param[i] p1 圆心坐标 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-05 */ void setLocation(double* p1); /** * @brief 获取端面圆心坐标 * @param[i] p1 端面圆心坐标 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-07-22 */ void getLocation(double* p1); /** * @brief 设置轴线方向 * @param[i] d 轴线方向 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-05 */ void setDirection(double* d); /** * @brief 获取轴线方向 * @param[i] d 轴线方向 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-07-22 */ void getDirection(double* d); /** * @brief 设置半径 * @param[i] r 半径 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-05 */ void setRadius(double r); /** * @brief 获取半径 * @return double * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-07-22 */ double getRadius() const; /** * @brief 设置长度,圆柱高度 * @param[i] length 长度 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-05 */ void setLength(double length); /** * @brief 获取长度 * @return double * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-07-22 */ double getLength() const; /** * @brief 设置半径因子 * @param[i] fac 半径因子 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-05 */ void setRadialFraction(double fac); /** * @brief 获取半径因子 * @return double * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-07-22 */ double getRadialFraction() const; /** * @brief 计算断面上与轴线两两垂直的两条轴线 * @param[o] axis 六个分量,axis[0-2] 第一坐标轴 axis[3-5] 第二坐标轴 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-05 */ void getPlaneAxis(double* axis); protected: /** * @brief 端面圆心坐标 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-05 */ double _location[3] = { 0,0,0 }; /** * @brief 轴线方向 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-05 */ double _direction[3] = { 1,0,0 }; /** * @brief 半径 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-05 */ double _radius{ 5.0 }; /** * @brief 长度 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-05 */ double _length{ 10.0 }; /** * @brief 半径因子 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-07-16 */ double _radiusFaction{ 0.5 }; }; } #endif