/** * * @file FITKOCCModelSphere.h * @brief 球体模型 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-05 * */ #ifndef __FITK_ABSGEO_MODEL_SPHERE_H__ #define __FITK_ABSGEO_MODEL_SPHERE_H__ #include "FITKInterfaceGeometryAPI.h" #include "FITKAbsGeoCommand.h" namespace Interface { /** * @brief 球体模型 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-05 */ class FITKInterfaceGeometryAPI FITKAbsGeoModelSphere : public FITKAbsGeoCommand { public: /** * @brief Construct a new FITKOCCModelSphere object * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-05 */ explicit FITKAbsGeoModelSphere() = default; /** * @brief Destroy the FITKOCCModelSphere object * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-05 */ virtual ~FITKAbsGeoModelSphere(); /** * @brief 设置球心位置 * @param[i] p1 球心坐标 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-05 */ void setLocation(double* p1); /** * @brief 获取端面圆心坐标 * @param[o] p1 圆心坐标 * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-06-05 */ void getLocation(double* p1); /** * @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-06-05 */ double getRadius() const; /** * @brief 获取几何命令类型 * @return FITKGeoEnum::FITKGeometryComType * @author LiBaojun (libaojunqd@foxmail.com) * @date 2024-07-12 */ FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override; 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 _radius{ 0 }; }; } #endif