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.
257 lines
6.4 KiB
C++
257 lines
6.4 KiB
C++
/**
|
|
*
|
|
* @file FITKGeometryMeshEntity.h
|
|
* @brief 几何显示对象实体声明
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*
|
|
*/
|
|
#ifndef _FITKGEOMETRY_MESHVS_ENTITY_H___
|
|
#define _FITKGEOMETRY_MESHVS_ENTITY_H___
|
|
|
|
#include "FITKInterfaceGeometryAPI.h"
|
|
#include <QList>
|
|
|
|
namespace Interface
|
|
{
|
|
/**
|
|
* @brief 三维点坐标
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
class FITKInterfaceGeometryAPI FITKGeoMeshVSPt
|
|
{
|
|
public:
|
|
/**
|
|
* @brief Construct a new FITKGeoMeshVSPt object
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
FITKGeoMeshVSPt() = default;
|
|
/**
|
|
* @brief Construct a new FITKGeoMeshVSPt object
|
|
* @param[i] x y z 坐标
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
FITKGeoMeshVSPt(const float& x, const float& y, const float& z);
|
|
/**
|
|
* @brief Construct a new FITKGeoMeshVSPt object
|
|
* @param[i] coor 坐标
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
FITKGeoMeshVSPt(double* coor);
|
|
/**
|
|
* @brief Destroy the FITKGeoMeshVSPt object
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
~FITKGeoMeshVSPt() = default;
|
|
/**
|
|
* @brief 设置xyz坐标
|
|
* @param[i] x y z 坐标
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
void setXYZ(const float& x, const float& y, const float& z);
|
|
/**
|
|
* @brief x坐标
|
|
* @return float
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
float x();
|
|
/**
|
|
* @brief y坐标
|
|
* @return float
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
float y();
|
|
/**
|
|
* @brief z坐标
|
|
* @return float
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
float z();
|
|
|
|
private:
|
|
/**
|
|
* @brief 坐标值
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
float _coor[3] = { 0,0,0 };
|
|
|
|
};
|
|
|
|
typedef FITKGeoMeshVSPt FITKGeoMeshTriNor;
|
|
/**
|
|
* @brief 三角形
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
class FITKInterfaceGeometryAPI FITKGeoMeshVSTri
|
|
{
|
|
public:
|
|
/**
|
|
* @brief Construct a new FITKGeoMeshVSTri object
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
FITKGeoMeshVSTri(const int p1, const int p2, const int p3);
|
|
/**
|
|
* @brief Destroy the FITKGeoMeshVSTri object
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
~FITKGeoMeshVSTri() = default;
|
|
/**
|
|
* @brief 获取节点
|
|
* @param[i] index 节点索引 有效值0-2
|
|
* @return int
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
int getNode(const int index);
|
|
/**
|
|
* @brief 获取节点
|
|
* @return int*
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
const int* getNode() const;
|
|
|
|
private:
|
|
/**
|
|
* @brief 三个节点
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
int _p[3] = { -1,-1,-1 };
|
|
|
|
};
|
|
/**
|
|
* @brief 几何面三角形
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
|
|
/**
|
|
* @brief 几何边
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
class FITKInterfaceGeometryAPI FITKGeoMeshVSEdgeEntity
|
|
{
|
|
public:
|
|
/**
|
|
* @brief Construct a new FITKGeoMeshVSEdgeEntity object
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
explicit FITKGeoMeshVSEdgeEntity() = default;
|
|
/**
|
|
* @brief Destroy the FITKGeoMeshVSEdgeEntity object
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
virtual ~FITKGeoMeshVSEdgeEntity();
|
|
/**
|
|
* @brief 清空边
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
void clear();
|
|
/**
|
|
* @brief 添加点
|
|
* @param[i] pt 点
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
void appendPoint(FITKGeoMeshVSPt* pt);
|
|
/**
|
|
* @brief 获取点数量
|
|
* @return int
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
int getPointCount();
|
|
/**
|
|
* @brief 获取点列表
|
|
* @return const QList<FITKGeoMeshVSPt*>&
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
const QList<FITKGeoMeshVSPt*>& getPoints() const;
|
|
|
|
private:
|
|
/**
|
|
* @brief 点列表
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
QList<FITKGeoMeshVSPt*> _ptList{};
|
|
|
|
};
|
|
|
|
class FITKInterfaceGeometryAPI FITKGeoMeshVSFaceEntity :
|
|
public FITKGeoMeshVSEdgeEntity
|
|
{
|
|
public:
|
|
/**
|
|
* @brief Construct a new FITKGeoMeshVSFaceEntity object
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
explicit FITKGeoMeshVSFaceEntity() = default;
|
|
/**
|
|
* @brief Destroy the FITKGeoMeshVSFaceEntity object
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
virtual ~FITKGeoMeshVSFaceEntity();
|
|
/**
|
|
* @brief 清空三角形
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
void clear();
|
|
/**
|
|
* @brief 添加三角形
|
|
* @param[i] tri 三角形
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
void appendMeshTri(FITKGeoMeshVSTri* tri);
|
|
/**
|
|
* @brief 获取三角形数量
|
|
* @return int
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
int getTriangleCount();
|
|
/**
|
|
* @brief 获取三角形列表
|
|
* @return FITKGeoMeshVSTri*
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
const QList<FITKGeoMeshVSTri*>& getTriangles() const;
|
|
|
|
private:
|
|
/**
|
|
* @brief 三角形列表
|
|
* @author LiBaojun (libaojunqd@foxmail.com)
|
|
* @date 2024-08-04
|
|
*/
|
|
QList<FITKGeoMeshVSTri*> _triList{};
|
|
|
|
};
|
|
}
|
|
|
|
|
|
#endif
|